home *** CD-ROM | disk | FTP | other *** search
/ Chip 2007 January, February, March & April / Chip-Cover-CD-2007-02.iso / Pakiet bezpieczenstwa / mini Pentoo LiveCD 2006.1 / mpentoo-2006.1.iso / modules / nessus-2.2.8.mo / usr / lib / nessus / plugins / os_fingerprint.nasl < prev    next >
Text File  |  2005-01-14  |  73KB  |  2,018 lines

  1. #
  2. # (C) 2003 Tenable Network Security
  3. #
  4. # Redistribution and use in source, with or without modification, are 
  5. # permitted provided that the following conditions are met:
  6. #
  7. # 1. Redistributions of source code must retain the above copyright
  8. #    notice, this list of conditions and the following disclaimer.
  9. # 2. All advertising materials mentioning features or use of this software
  10. #    must display the following acknowledgement:
  11. #     This product includes software developed by Tenable Network Security
  12. #
  13. #
  14. #
  15. # grep ":.*:.*:.*:.*:.*:.*:.*:.*:.*:.*:" os_fingerprint.nasl | sort  | uniq -c  | sort -n
  16. #
  17.  
  18. if (description)
  19. {
  20.   script_version("$Revision: 1.100 $");
  21.   script_id(11936);
  22.  
  23.   name["english"] = "OS Identification";
  24.   script_name(english:name["english"]);
  25.  
  26.   desc["english"] = "
  27. This script attempts to identify the Operating System type and version by
  28. various ways :
  29.  
  30. - If the remote host is a Windows host, it will attempt to determine its
  31.   OS type by sending MSRPC packets on port 135 and guess the OS based on
  32.   the results
  33.  
  34. - If the remote host has a NTP client listening on port 123, this script will
  35.   try to ask for the operating system version this way
  36.  
  37. - Otherwise, this script determines the remote operating system by sending more 
  38. or less incorrect ICMP requests using the techniques outlined in Ofir Arkin's 
  39. paper 'ICMP Usage In Scanning'.
  40.  
  41. An attacker may use this to identify the kind of the remote operating
  42. system and gain further knowledge about this host.
  43.  
  44. See also : http://www.sys-security.com/html/projects/icmp.html (icmp os identification)
  45. Risk factor : Low";
  46.  
  47.   script_description(english:desc["english"]);
  48.  
  49.   summary["english"] = "Determines the remote operating system";
  50.   script_summary(english:summary["english"]);
  51.  
  52.   script_category(ACT_GATHER_INFO);
  53.  
  54.   script_copyright(english:"This script is Copyright (C) 2003 Tenable Network Security");
  55.   family["english"] = "General";
  56.   script_family(english:family["english"]);
  57.   script_dependencies("smb_nativelanman.nasl", "netbios_name_get.nasl", "smb_login.nasl","smb_registry_full_access.nasl", "ntp_open.nasl", "mdns.nasl", "snmp_sysDesc.nasl");
  58.   script_require_ports(139, 445, "Host/scanned");
  59.   exit(0);
  60. }
  61.  
  62.  
  63.  
  64. include("network_func.inc");
  65. include("smb_nt.inc");
  66. include("smb_file_funcs.inc");
  67.  
  68.  
  69.  
  70. if ( (os = get_kb_item("mDNS/os")) )
  71. {
  72.          report = "The remote host is running " + os;
  73.          set_kb_item(name:"Host/OS/icmp", value:os);
  74.      security_note(port:0, data:report);
  75.      exit(0);
  76. }
  77.  
  78. if ( ( os = get_kb_item("SNMP/sysDesc")) ) 
  79. {
  80.  if ("ELSA LANCOM" >< os )
  81.  {
  82.    report = "The remote host is running " + os;
  83.    set_kb_item(name:"Host/OS/icmp", value:os);
  84.    security_note(port:0, data:report);
  85.    exit(0);
  86.  }
  87.  if ("IP Console Switch " >< os )
  88.  {
  89.   report = "The remote host is running HP " + os;
  90.    set_kb_item(name:"Host/OS/icmp", value:"HP " + os);
  91.    security_note(port:0, data:report);
  92.    exit(0);
  93.  }
  94.  if ("SCO UnixWare" >< os )
  95.  {
  96.    report = "The remote host is running " + os;
  97.    set_kb_item(name:"Host/OS/icmp", value:os);
  98.    security_note(port:0, data:report);
  99.    exit(0);
  100.  }
  101.  
  102.  if ("Apple Base Station" >< os )
  103.  {
  104.    version = ereg_replace(pattern:".*Apple Base Station V(.*) Compatible",
  105.               replace:"\1",
  106.               string:os);
  107.  
  108.    os = "Apple Airport " + version;
  109.    report = "The remote host is running " + os;
  110.    set_kb_item(name:"Host/OS/icmp", value:os);
  111.    security_note(port:0, data:report);
  112.    exit(0);
  113.  }
  114.  if ("OpenVMS" >< os )
  115.  {
  116.   version = ereg_replace(pattern:".*OpenVMS V([0-9]*\.[0-9]*).*", 
  117.              string:egrep(pattern:"OpenVMS", string:os),
  118.              replace:"\1");
  119.   if ( version != os )
  120.   {
  121.    os = "OpenVMS " + version;
  122.    report = "The remote host is running " + os;
  123.    set_kb_item(name:"Host/OS/icmp", value:os);
  124.    security_note(port:0, data:report);
  125.    exit(0);
  126.   }
  127.  
  128.    
  129.  }
  130.  if ("IBM Gigabit Ethernet Switch Module" >< os )
  131.  {
  132.    os = "IBM Gigabit Ethernet Switch Module";
  133.    report = "The remote host is running " + os;
  134.    set_kb_item(name:"Host/OS/icmp", value:os);
  135.    security_note(port:0, data:report);
  136.    exit(0);
  137.  }
  138.  if ( "IOS (tm)" >< os )
  139.  {
  140.   version = ereg_replace(pattern:".*IOS.*Version ([0-9]*\.[0-9]*)\(.*",
  141.              string:egrep(pattern:"IOS", string:os),
  142.              replace:"\1");
  143.  
  144.   if ( version != os )
  145.   {
  146.    os = "CISCO IOS " + version;
  147.    report = "The remote host is running " + os;
  148.    set_kb_item(name:"Host/OS/icmp", value:os);
  149.    security_note(port:0, data:report);
  150.    exit(0);
  151.   }
  152.  }
  153.  
  154.  if ("Digital UNIX" >< os )
  155.  {
  156.   version = ereg_replace(pattern:".*Digital UNIX V([0-9]\.[0-9]).*",
  157.              string:egrep(pattern:"Digital UNIX", string:os),
  158.              replace:"\1");
  159.   if ( version != os )
  160.   {
  161.    os = "Digital Unix " + version;
  162.    report = "The remote host is running " + os;
  163.    set_kb_item(name:"Host/OS/icmp", value:os);
  164.    security_note(port:0, data:report);
  165.    exit(0);
  166.   }
  167.  }
  168.  
  169.  
  170.  if ("ULTRIX" >< os )
  171.  {
  172.   version = ereg_replace(pattern:".*ULTRIX V([^ ]*).*", 
  173.              string:egrep(pattern:"ULTRIX", string:os), 
  174.              replace:"\1");
  175.   if ( version != os ) 
  176.   {
  177.    os = "ULTRIX " + version;
  178.    report = "The remote host is running " + os;
  179.    set_kb_item(name:"Host/OS/icmp", value:os);
  180.    security_note(port:0, data:report);
  181.    exit(0);
  182.   }
  183.  }
  184.  if ("HP-UX" >< os )
  185.  {
  186.    version = ereg_replace(pattern:".*HP-UX [^ ]* ([^ ]*) .*", 
  187.               replace:"\1", 
  188.               string:egrep(pattern:"HP-UX", string:os)
  189.              );
  190.    if ( version != os )
  191.    {
  192.    report = "The remote host is running HP/UX " + version;
  193.    set_kb_item(name:"Host/OS/icmp", value:"HP/UX " + version);
  194.    security_note(port:0, data:report);
  195.    exit(0);
  196.    }
  197.  }
  198.  
  199.  if ( "kernel 2." >< os )
  200.  {
  201.   version = ereg_replace(pattern:".* kernel (2\.[0-9])\..*", replace:"\1", string:os);
  202.   if ( version != os ) 
  203.   {
  204.   version = "Linux Kernel " + version;
  205.   report = "The remote host is running " + version;
  206.   set_kb_item(name:"Host/OS/icmp", value:version);
  207.   security_note(port:0, data:report);
  208.   exit(0);
  209.   }
  210.  }
  211.  
  212.  if ("JETDIRECT" >< os )
  213.  {
  214.   version = "HP JetDirect";
  215.   report = "The remote host is running " + version;
  216.   set_kb_item(name:"Host/OS/icmp", value:version);
  217.   security_note(port:0, data:report);
  218.   exit(0);
  219.  } 
  220.  
  221.  if ("Xerox" >< os )
  222.  {
  223.   version = "Xerox Printer";
  224.   report = "The remote host is running " + version;
  225.   set_kb_item(name:"Host/OS/icmp", value:version);
  226.   security_note(port:0, data:report);
  227.   exit(0);
  228.  }
  229.  
  230.  if ("NetQue" >< os )
  231.  {
  232.   report = "The remote host is running NetQue Printer Server";
  233.   set_kb_item(name:"Host/OS/icmp", value:"NetQue Printer Server");
  234.   security_note(port:0, data:report);
  235.   exit(0);
  236.  }
  237.  
  238.  # http://www.dealtime.co.uk/xPF-Equinox_MDS_10_990410
  239.  if ("EQUINOX MDS" >< os )
  240.  {
  241.   os = "Equinox MDS Transceiver";
  242.   report = "The remote host is running " + os;
  243.   set_kb_item(name:"Host/OS/icmp", value:os);
  244.   security_note(port:0, data:report);
  245.   exit(0);
  246.  }
  247.  
  248.  if ("Novell NetWare" >< os )
  249.  {
  250.   version = ereg_replace(pattern:".* NetWare ([^ ]*).*", string:os, replace:"\1");
  251.   if ( version != os ) 
  252.   {
  253.   version = split(version, sep:'.', keep:0);
  254.   os = "Novell Netware " + int(version[0]) + "." + int(version[1]) / 10; 
  255.   report = "The remote host is running " + os;
  256.   set_kb_item(name:"Host/OS/icmp", value:os);
  257.   security_note(port:0, data:report);
  258.   exit(0);
  259.   }
  260.  }
  261.  
  262.  
  263.  if ("WorkCentre Pro Multifunction System" >< os )
  264.  {
  265.   os = "Xerox WorkCentre Pro"; 
  266.   report = "The remote host is running " + os;
  267.   set_kb_item(name:"Host/OS/icmp", value:os);
  268.   security_note(port:0, data:report);
  269.   exit(0);
  270.  }
  271.  
  272.  if ("AIX" >< os )
  273.  {
  274.   line = egrep(pattern:"AIX version", string:os);
  275.   version = ereg_replace(pattern:".*AIX version: (.*)$", string:line, replace:"\1");
  276.   if ( version != line )
  277.   {
  278.   version = split(version, sep:'.', keep:0);
  279.   os = "AIX " + int(version[0]) + "." + int(version[1]);
  280.   report = "The remote host is running " + os;
  281.   set_kb_item(name:"Host/OS/icmp", value:os);
  282.   security_note(port:0, data:report);
  283.   exit(0);
  284.   }
  285.  }
  286. }
  287.  
  288.  
  289. #
  290. # If the remote host is running Windows, we attempt to determine its exact
  291. # name by reading the remote registry and files.
  292. #
  293. if ( ! get_kb_item("SMB/samba") ) 
  294. {
  295. if ( get_kb_item("SMB/registry_full_access") ) 
  296.  {
  297.  rootfile = registry_get_sz(key:"SOFTWARE\Microsoft\Windows NT\CurrentVersion", item:"SystemRoot");
  298.  if ( rootfile ) 
  299.  { 
  300.   sp = registry_get_sz(key:"SOFTWARE\Microsoft\Windows NT\CurrentVersion", item:"CSDVersion");
  301.   file = rootfile + "\system32\prodspec.ini";  
  302.   content = smb_file_read(file:file,count:512);
  303.   content = str_replace(find:'\r', replace:"", string:content);
  304.   product = egrep(pattern:"^Product=", string:strstr(content, "Product="));
  305.   lang    = egrep(pattern:"^Localization=", string:strstr(content, "Localization="));
  306.   if (strlen(product)) {
  307.      product -= "Product=";
  308.          end = strstr(product, '\n');
  309.          product = product - end;
  310.      lang    -= "Localization=";
  311.      end = strstr(lang, '\n');
  312.      lang = lang - end;
  313.      if ( "Service Pack" >!< sp ) sp = "";
  314.          else sp = " " + sp ;
  315.      version = "Microsoft " + product + sp + " (" + lang + ")";
  316.          report = "The remote host is running " + version;
  317.          set_kb_item(name:"Host/OS/icmp", value:version);
  318.          security_note(port:0, data: report );
  319.          exit(0);
  320.        }
  321.     } 
  322.   }
  323. }
  324.  
  325. #
  326. # If NTP is open, try to read data from there. We have to
  327. # normalize the data we get, which is why we don't simply
  328. # spit out 'Host/OS/ntp'
  329. #
  330. os = get_kb_item("Host/OS/ntp");
  331. if ( os )
  332. {
  333.  processor = get_kb_item("Host/processor/ntp");
  334.  # Normalize intel CPUs 
  335.  if ( processor && ereg(pattern:"i[3-9]86", string:processor)) processor = "i386"; 
  336.  
  337.  # Mac OS X
  338.  if ("sparcv9-wrs-vxworks" >< os )
  339.  { 
  340.    version = "VxWorks";
  341.    report = "The remote host is running " + version;
  342.    set_kb_item(name:"Host/OS/icmp", value:version);
  343.    security_note(port:0, data: report );
  344.    exit(0);
  345.  }
  346.  if ( "Darwin" >< os && "Power Macintosh" >< processor )
  347.  {
  348.    os -= "Darwin";
  349.    num = split(os, sep:".", keep:FALSE);
  350.    version = "Mac OS X 10." + string(int(num[0]) - 4) + "." + num[1];
  351.    report = "The remote host is running " + version;
  352.    set_kb_item(name:"Host/OS/icmp", value:version);
  353.    security_note(port:0, data: report );
  354.    exit(0);
  355.  }
  356.  
  357.  if ("UNIX/HPUX" >< os )
  358.  {
  359.    report = "The remote host is running HP/UX";
  360.    set_kb_item(name:"Host/OS/icmp", value:"HP/UX");
  361.    security_note(port:0, data: report );
  362.    exit(0);
  363.  }
  364.  # 'Regular' Darwin
  365.  if ("Darwin" >< os )
  366.  {
  367.    os -= "Darwin";
  368.    version = "Darwin" + os;
  369.    if ( processor ) version += " (" + processor + ")";
  370.  
  371.    report = "The remote host is running " + version;
  372.    set_kb_item(name:"Host/OS/icmp", value:version);
  373.    security_note(port:0, data: report );
  374.    exit(0);
  375.  }
  376.  
  377.  if ("NetBSD" >< os )
  378.  {
  379.    os -= "NetBSD";
  380.    version = "NetBSD " + os;
  381.    if ( processor ) version += " (" + processor + ")";
  382.  
  383.    report = "The remote host is running " + version;
  384.    set_kb_item(name:"Host/OS/icmp", value:version);
  385.    security_note(port:0, data: report );
  386.    exit(0);
  387.  } 
  388.  
  389.  if ("FreeBSD" >< os )
  390.  {
  391.    os -= "FreeBSD";
  392.    version = "FreeBSD " + os;
  393.    if ( processor ) version += " (" + processor + ")";
  394.  
  395.    report = "The remote host is running " + version;
  396.    set_kb_item(name:"Host/OS/icmp", value:version);
  397.    security_note(port:0, data: report );
  398.    exit(0);
  399.  }
  400.  
  401.  if ("OpenBSD" >< os )
  402.  {
  403.    os -= "OpenBSD";
  404.    version = "OpenBSD" + os;
  405.    if ( processor ) version += " (" + processor + ")";
  406.  
  407.    report = "The remote host is running " + version;
  408.    set_kb_item(name:"Host/OS/icmp", value:version);
  409.    security_note(port:0, data: report );
  410.    exit(0);
  411.  }
  412.  
  413.  if ("Linux" >< os )
  414.  {
  415.    if ("Linux/" >< os ) os -= "Linux/";
  416.    else os -= "Linux";
  417.    os = "Linux Kernel " + os;
  418.    version = os;
  419.    if ( processor ) version += " (" + processor + ")";
  420.    report = "The remote host is running " + version;
  421.    set_kb_item(name:"Host/OS/icmp", value:version);
  422.    security_note(port:0, data: report );
  423.  }
  424.  
  425.  if ("SunOS5." >< os )
  426.  {
  427.   os -= "SunOS5.";
  428.   if ( int(os) >= 7 ) os = "Sun Solaris " + os;
  429.   else os = "Sun Solaris 2." + os;
  430.   version = os;
  431.   if ( processor ) version += " (" + processor + ")";
  432.   report = "The remote host is running " + version;
  433.   set_kb_item(name:"Host/OS/icmp", value:version);
  434.   security_note(port:0, data: report );
  435.  }
  436.  
  437. }
  438.  
  439.  
  440. ttl = 0; # global
  441. ip_id_sent = "1"; # global
  442. MAX_RETRIES = 3;
  443.  
  444. db = "
  445. # Submitted by Kendall Risselada
  446. 6624M TigerSwitch 10/100:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:0:0:3:1:3:0:1:64:8192:MNW:0:N:N
  447. # Submitted by KK Liu
  448. 3Com SuperStack II:1:1:0:32:1:32:1:0:32:1:0:32:1:>64:32:0:1:1:1:1:1:1:0:1:32:2048:M:N:N:N
  449. A4/600 Label Printer:1:1:0:32:1:32:1:0:32:1:0:32:1:8:32:0:1:1:2:1:1:1:0:1:32:8192:M:N:N:N
  450. AIX 4.0/4.2:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:1:2:1:>20:1:0:1:64:16060:M:N:N:N
  451. AIX 4.2:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:1:2:1:>20:1:0:1:64:16340:M:N:N:N 
  452. AIX 4.0:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:16060:M:N:N:N
  453. AIX 4.3:1:1:1:255:0:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:16060:M:N:N:N
  454. AIX 4.3:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:16060:M:N:N:N 
  455. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:65160:MNWNNT:0:1:1
  456. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:65535:MNWNNTNNS:4:1:1
  457. APC PowerNet UPS:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:1:1:64:4344:MNWNNT:0:1:1
  458. APC PowerNet UPS:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:1:1:64:4344:MNWNNSNNT:0:1:1   
  459. APC PowerNet UPS:0:1:0:64:1:64:1:0:64:1:1:64:1:8:64:0:1:2:1:1:1:1:0:1:64:1600:M:N:N:N 
  460. ExtremeNetwork Switch:1:1:1:128:1:128:1:1:128:1:0:128:1:8:128:1:1:0:2:1:>20:1:0:1:32:4096:M:N:N:N 
  461. HP JetDirect:0:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:2144:M:N:N:N 
  462. HP JetDirect:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:8192:MNW:0:N:N
  463. HP JetDirect:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:1460:MNWNNT:0:1:1 
  464. HP Integrated Lights Out Board:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5840:M:N:N:N
  465. HP P1218A TopTools Remote Control:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:1:0:1:1:3:0:1:64:4096::N:N:N 
  466. HP Integrated Lights Out Board:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:MNWNNT:0:1:1
  467. HP Integrated Lights Out Board:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5840:MS:N:N:N
  468.  
  469. IBM OS/390:0:1:0:32:0:32:1:0:32:1:0:32:1:8:32:0:1:1:1:1:1:1:0:1:32:65535:MNWNNT:4:1:1
  470. IBM OS/390:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:32768:MNNT:N:1:1
  471. Lexmark Printer:0:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:2:1:1:1:0:1:255:1010:M:N:N:N
  472. Microsoft Windows 2000 Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:64512:MNWNNTNNS:0:0:0 
  473. Microsoft Windows 95:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:MNWNNTNNS:0:0:0
  474. NCR MP-RAS SVR4 UNIX:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:1:1:1:1:1:1:1:64:24820:MNWNNT:0:1:1
  475. PolyCom ViewStation:0:1:1:64:0:64:1:0:64:1:0:64:1:64:64:0:1:1:1:1:1:1:0:1:64:23360:M:N:N:N
  476. PowerShow NetworKam webcam=:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:2144:M:N:N:N 
  477. Raptor Firewall:1:1:1:64:1:64:1:1:64:1:1:64:1:8:64:1:1:1:1:1:1:1:0:1:64:61440:MNW:0:N:N 
  478. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:17376:NNTNWNNSM:0:1:1
  479. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:65160:NNTNWNNSM:0:1:1
  480. Symantec Enterprise Firewall:1:1:1:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:1:1:255:10136:NNTNWNNSM:0:1:1
  481. Tekronix Printer:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:2920:M:N:N:N 
  482. UNIX System V Release 4.0::1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:49232:NNTNWNNSM:1:1:1
  483. Xerox Printer:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:32:4096:M:N:N:N
  484. Xerox Printer:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:0:3:>20:3:0:1:64:16384:M:N:N:N
  485. AltaVista Tunnel Server:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:33580:MNW:0:N:N
  486.  
  487.  
  488. # Submitted by Michael Scheidell
  489. 3Com SuperStack II:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:1024:M:N:N:N
  490.  
  491. # Submitted by Richard Shinebarger
  492. A/UX 3.11:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:1:1:1:0:1:32:4096:M:N:N:N
  493.  
  494. # Submitted by Joannathan HervΘ : ATLAS 550 Rev B03
  495. Adtran ATLAS 550:0:1:0:64:0:64:1:1:64:1:0:64:1:8:64:0:1:1:2:1:1:1:0:1:64:4096:M:N:N:N
  496.  
  497. # Submitted by Daniel Wesemann
  498. AIX 4.0:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:3:>20:1:1:1:64:64240:M:N:N:N
  499. AIX 4.0:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:3:>20:1:1:1:64:65535:MNWNNT:2:1:1
  500.  
  501. # Submitted by Ragis Guirguis
  502. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:65535:MNWNNT:4:1:1
  503.  
  504. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:51100:M:N:N:N
  505.  
  506. # Submitted by Ahmet Ozturk
  507. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:65535:M:N:N:N
  508.  
  509.  
  510. # Submitted by Peters Devon
  511. AIX 5.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:17520:M:N:N:N
  512.  
  513. # Submitted by Owen Crow
  514. AIX 5.2:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:17520:M:N:N:N
  515.  
  516. # Submitted by Shawn Leard
  517. AIX 5.2:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:17376:MNWNNT:0:1:1
  518.  
  519. # Submitted by Piotr Lasota
  520. AIX 5.2:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:65535:M:N:N:N
  521.  
  522. # Submitted by Peter Eckel
  523. AIX 4.3:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:0:1:64:16060:M:N:N:N
  524.  
  525. # Submitted by Heiko Geist
  526. AIX 4.1:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:2:1:>20:1:1:1:64:15400:M:N:N:N
  527.  
  528. # Submitted by omri
  529. Alcatel Speed Touch Pro:1:1:1:255:1:255:1:1:255:1:0:255:1:8:255:1:1:1:0:1:1:1:0:1:64:4096:MNWNNT:0:1:1
  530.  
  531. # submitted by Scott Bentley
  532. Allied Telesyn AR320 Router:0:S:1:64:1:64:S:1:64:S:0:64:S:8:255:0:1:1:1:1:1:1:0:1:64:1024:M:N:N:N
  533.  
  534. # Submitted by Lior Rotkovitch - NetEnforcer AC202
  535. Allot NetEnforcer:1:1:0:255:1:255:1:0:255:1:0:255:1:>64:255:0:1:1:1:1:1:1:1:1:64:1360:MSTNW:0:1:1
  536.  
  537. # Submitted by Roberto Marinello - alteon 184
  538. Alteon:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:8760:M:N:N:N
  539.  
  540. # Submitted by Nicolas S. Dade
  541. Alteon:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:4096:M:N:N:N
  542.  
  543.  
  544. # Submitted by sullo
  545. AsyncOS:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:3:1:1:1:1:64:16384:MNWNNT:0:1:1
  546.  
  547. # Submitted by Stephen Weeber - version 3.1.58
  548. Avaya VPNet VSU 2000::1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:0:3:>20:3:0:1:64:4380:M:N:N:N
  549.  
  550.  
  551. # Submitted by Simon Fretz
  552. Baystack Switch:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:1024:M:N:N:N
  553. Baystack Switch:1:1:0:32:0:32:1:0:32:1:0:32:1:8:32:0:1:1:1:1:1:1:0:1:32:1024:M:N:N:N
  554.  
  555. # Submitted by Joel (asmodianx) (firmware 1.10.008, boot 1.13, hw 01)
  556. Belkin Wireless Router:1:1:1:64:1:64:1:0:64:1:0:64:1:X:X:X:X:X:X:X:X:X:0:1:64:8192:MNW:0:N:N
  557.  
  558. # Submitted by Dennis Feijen -  BINTEC-X4000 version V.5.1 Rev. 6 
  559. Bintec Router:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:2:3:1:3:0:1:64:4096:M:N:N:N
  560.  
  561. # Submited by Matthias Geiser
  562. BlueCoat SG400:1:1:1:255:0:255:1:0:255:1:0:255:1:8:255:1:1:0:0:3:>20:3:0:1:64:65535:MNWNNT:0:1:1
  563.  
  564. # Submitted by Benjamin Zak
  565. BreezeAccess SU-I Local Loop Radio:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:1:1:1:1:1:1:1:1:1:64:1500::N:N:N
  566.  
  567. # Submitted by rio@rio.st
  568. BUG inc. IP stack:0:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:8192:M:N:N:N
  569. # Submitted by H D Moore
  570. Cabletron Switch:1:1:0:32:0:32:1:1:32:1:0:32:1:8:255:1:S:0:1:1:1:1:0:0:32:4096::N:N:N
  571.  
  572. # Submitted by Ken Welker
  573. Cayman DSL Router:1:1:0:32:0:32:1:0:32:1:0:32:1:8:255:0:1:1:1:1:1:1:0:1:32:4096::N:N:N
  574.  
  575.  
  576. CISCO IOS 11.2:1:S:1:255:1:255:S:0:255:S:1:255:S:8:255:0:1:1:1:1:1:1:0:0:255:4288:M:N:N:N
  577. # Submutted by Arnod Nipper
  578. CISCO IOS 12.0:1:S:1:255:0:255:1:0:255:1:0:255:1:8:255:0:1:2:1:1:1:1:0:0:255:4128:M:N:N:N
  579. # Submitted by Joannathan HervΘ : CISCO IOS 12.0(9)
  580. CISCO IOS 12.0:1:S:1:255:1:255:S:0:255:S:1:255:S:8:255:0:1:1:1:1:1:1:0:0:255:4128:M:N:N:N
  581. # Submitted by Marco Teixeira : CISCO IOS 12.0(5)
  582. CISCO IOS 12.0:1:S:1:255:1:255:S:0:255:S:0:255:S:8:255:0:1:1:1:1:1:1:0:0:255:4128:M:N:N:N
  583.  
  584. CISCO IOS 12.1:1:S:1:255:1:255:S:0:255:S:1:255:S:8:255:0:1:1:2:1:1:1:0:0:255:4128:M:N:N:N
  585.  
  586. # Submitted by Richard Harvey
  587. CISCO IOS 12.2:1:S:1:255:0:255:1:0:255:1:0:255:1:8:255:0:1:2:2:1:1:1:0:0:255:4128:M:N:N:N
  588. CISCO IOS 12.3:1:S:1:255:1:255:S:0:255:S:0:255:S:8:255:0:1:1:1:1:1:1:0:0:255:4128:M:N:N:N
  589.  
  590. # Submitted by Maarten Hartsuikjker
  591. CISCO IOS 12.2:1:S:1:255:1:255:S:0:255:S:1:255:S:8:255:0:1:1:1:1:1:1:0:0:255:1460:M:N:N:N
  592.  
  593. # Submitted by Wany Barber
  594. CISCO IOS 12.3:1:S:1:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:0:255:4128:M:N:N:N
  595. # Actually 4.2.3
  596. CISCO Local Director 4.2:1:1:1:64:0:64:1:0:64:1:0:64:1:X:X:X:X:X:X:X:X:X:X:0:1:255:4096:M:N:N:N
  597.  
  598. # Submitted by Jamyn
  599. CISCO Catalyst 5000:1:1:1:64:1:64:1:1:64:1:1:64:1:8:64:1:1:0:0:1:1:1:0:1:32:4096::N:N:N
  600.  
  601. # Submitted by Erik Linder
  602. CISCO IP Telephone 7940:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:1400:M:N:N:N
  603.  
  604. # Submitted by H D Moore
  605. CISCO VPN Concentrator:1:S:1:128:0:128:1:0:128:1:0:128:1:8:128:0:0:1:1:1:1:1:1:S:128:5840::N:N:N
  606.  
  607.  
  608. Clark Connect Firewall:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:1:1:1
  609.  
  610.  
  611. # Submitted by Guy RayMakers
  612. Cyclades Terminal Server:1:1:0:255:0:255:1:0:255:1:0:255:1:>64:255:0:1:1:1:3:1:1:1:0:64:5792:MSTNW:0:1:1
  613.  
  614. Digital Unix 4.0:1:1:1:64:1:64:1:0:64:1:1:64:1:8:64:1:1:0:1:1:1:1:1:1:64:33580:MNW:0:N:N
  615.  
  616. # Submitted by Adam LaFrenier - PowerConnect 3024 and 3048
  617. Dell PowerConnect Switch:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:0:1:>20:1:0:1:64:8192:MNWNNT:0:1:1
  618.  
  619. DryStar Printer:0:1:0:255:0:255:1:1:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:64:8760:M:N:N:N
  620.  
  621.  
  622. # Submitted by Keith Duarte
  623. D-Link Router:1:1:0:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:8192:M:N:N:N
  624. # Submitted by Marc at spooshland.com
  625. D-Link Router:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5808:M:N:N:N
  626. D-Link WLAN Access Point:1:1:0:32:0:32:1:0:32:1:0:32:1:X:X:X:X:X:X:X:X:X:0:1:32:16000:M:N:N:N
  627. # Actually a DI-713P WAP
  628. D-Link DI-713P WLAN Access Point:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5840:M:N:N:N
  629. # Actually a DI-624 WAP
  630. D-Link DI-624 WLAN Access Point:1:1:0:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:8192:M:N:N:N
  631. D-Link DI-624+ WLAN Access Point:1:1:0:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:8192:M:N:N:N
  632. # Submitted by Thomas Ratz
  633. D-Link DI-614+ WLAN Access Point:1:1:0:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:8192:MW:0:N:N
  634. # Submitted by Erik Brostrm
  635. D-Link DI-604 Router:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5840:MS:N:N:N
  636.  
  637. # Submitted by Charles G Griebel. Version 4.2.20.100
  638. EMC Celerra File Server:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:2:3:1:3:0:1:64:65535:MNWNNT:3:1:1
  639.  
  640. # Submitted by 'nts'
  641. ELSA LANCOM Wireless Router:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:1400::N:N:N
  642.  
  643. # Submitted by H D Moore
  644. Enterasys Vertical Horizon Switch:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:1:0:1:1:1:0:1:64:4096::N:N:N
  645. Enterasys XSR-1805:1:S:1:255:0:255:1:1:255:S:0:255:S:8:255:0:0:1:1:1:1:1:0:1:255:8192:MNWNNT:0:1:1
  646. # Submitted by Daniel Wesemann  - see www.brocade.com
  647. Fabric OS:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:32:4096:M:N:N:N
  648.  
  649.  
  650. F5 Networks Appliance:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:1:2:3:1:1:1:1:64:17520:MNWNNT:0:1:1
  651. Foundry Networks Load Balancer:1:1:0:64:0:64:1:0:64:1:0:64:1:64:64:0:1:1:1:1:1:1:0:1:64:16384:M:N:N:N
  652. Foundry Networks Load Balancer:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:2:1:1:1:1:0:1:64:16384:M:N:N:N
  653.  
  654. # Submitted by Marco IANNOZI and Owen Crow
  655. HP/UX B.11.11:1:1:1:255:0:255:1:0:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:32768:MNNSWNNNT:0:1:1
  656.  
  657. HP/UX B.11.0:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:32768:MNNSWNNNT:0:1:1
  658.  
  659. # Submitted by Renaud Fortier
  660. HP/UX 10.20:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:1:0:1:1:1:1:1:64:32768:M:N:N:N
  661.  
  662.  
  663. # Submitted by Pauli Burodulin - HP LaserJet 4100
  664. HP JetDirect:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:5840:MNW:0:N:N
  665. HP JetDirect:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:8192:MNW:0:N:N
  666. HP JetDirect:0:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:0:1:1:1:0:1:64:2144:M:N:N:N
  667.  
  668. # Submitted by Lee Reynolds - HP LaserJet 2300
  669. HP JetDirect:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:5840:MNWNNT:0:1:1
  670. # Submitted by H D Moore
  671. HP JetDirect:0:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:5840:M:N:N:N
  672. HP JetDirect:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:1460:MNW:0:N:N
  673. HP JetDirect:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:1460:MNWNNT:0:1:1
  674.  
  675. # Subitted by Daniel Wesemann
  676. HP JetDirect:0:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:3:1:1:0:1:64:5840:M:N:N:N
  677.  
  678. # Submitted by Aaron Smith
  679. HP ProCurve Switch:1:1:1:64:1:64:1:1:64:1:1:64:1:8:64:1:1:0:0:3:1:3:0:1:64:4096:M:N:N:N
  680. # Submitted by Kendall Risselada
  681. HP ProCurve Switch:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:0:0:1:1:3:0:1:64:8192:MNW:0:N:N
  682.  
  683. HP IP Console Switch:1:0:1:255:1:255:0:0:255:0:0:255:0:>64:255:1:0:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  684.  
  685.  
  686. FreeBSD 5.3:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:2:1:1:1:1:1:64:65535:MNWNNTNNS:1:1:1
  687. FreeBSD 5.2:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:2:3:1:3:0:1:64:65535:MNWNNT:1:1:1
  688. FreeBSD 5.2:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:65535:MNWNNT:1:1:1
  689. FreeBSD 5.1:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:65535:MNWNNT:1:1:1
  690. FreeBSD 4.9:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:65535:MNWNNT:0:1:1
  691. FreeBSD 4.9:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:57344:MNWNNT:0:1:1
  692. FreeBSD 4.9:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:2:1:1:1:1:1:64:57344:MNWNNT:0:1:1
  693. FreeBSD 4.8:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:57344:MNWNNT:0:1:1
  694. FreeBSD 4.7:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:57344:MNWNNT:0:1:1
  695. # Submitted by Shane Mullins
  696. FreeBSD 4.6:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:0:1:64:57344:MNWNNT:0:1:1
  697. FreeBSD 4.5:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:0:1:64:65535:MNWNNT:1:1:1
  698. # Submitted by Boka Marek
  699. FreeBSD 4.4:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:17376:MNWNNT:0:1:1
  700. FreeBSD 4.2:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:1:1:1:1:1:1:64:17520:M:N:N:N
  701. FreeBSD 4.1:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:3:1:3:1:1:64:17520:M:N:N:N
  702. FreeBSD 4.0:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:3:1:3:1:1:64:17520:M:N:N:N
  703. FreeBSD 3.5:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:3:1:3:1:1:64:17520:M:N:N:N
  704. FreeBSD 3.4:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:3:1:3:1:1:64:17520:M:N:N:N
  705. FreeBSD 3.3:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:2:3:1:3:1:1:64:17520:M:N:N:N
  706.  
  707. # Submitted by Ian Pattison
  708. GNET Wireless Access Point:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:5840:MS:N:N:N
  709.  
  710. # Submitted by Ral Aldaz
  711. IBM OS/400:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:1:1:64:8192:MNWNNT:0:1:1
  712. IBM Gigabit Switch Module:1:S:1:32:0:32:1:0:32:1:0:32:1:8:32:0:0:1:1:1:1:1:0:1:32:8192:MNWNNT:0:1:1
  713.  
  714. # Actually is IRIX 6.5.18f
  715. IRIX 6.5:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:1:1:1:1:1:1:1:64:60816:MNWNNTNNS:0:1:1
  716. # Submitted by Alexander Brinkman - IRIX 6.5.20
  717. IRIX 6.5:1:1:1:255:1:255:1:1:255:1:0:255:1:8:255:1:1:1:1:1:1:1:1:1:64:60816:MNWNNTNNS:0:1:1
  718.  
  719. # Submitted by Daniel Wesemann
  720. JVC VN-C1U Webcam:1:1:0:64:1:64:1:1:64:1:0:64:1:8:64:0:1:1:1:3:1:1:0:1:64:4728:M:N:N:N
  721.  
  722. # Submited by Michael Tsentsarevsky
  723. Juniper M7i:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:1:1:1:1:1:1:1:64:17376:MNWNNT:0:1:1
  724. # Submitted by Pauli Borodolin
  725. Konica Minolta Digital Copier/Printer:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:0:0:1:1:1:0:1:255:1:MNWNNT:0:1:1
  726.  
  727. # Submitted by Daniel Wesemann
  728. Lantronix Printer:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:1:1:3:1:1:1:1:64:255:M:N:N:N
  729.  
  730. Lexmark Printer:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:1:1:1:1:1:1:1:1:1:255:2896:MNWNNT:0:1:1
  731. Lexmark Printer:1:0:1:255:1:255:0:0:255:0:0:255:0:>64:255:1:0:1:1:1:1:1:1:0:255:1448:MSTNW:0:1:1
  732.  
  733.  
  734. # Submitted by Aldwin Wijnveld
  735. Lexmark Printer:0:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:2:1:1:1:0:1:255:15346:M:N:N:
  736.  
  737. # Submitted by Ron Searle (BEFSR114 router)
  738. Linksys Router:1:S:0:64:0:64:1:0:64:1:0:64:1:8:64:0:S:1:1:1:1:1:0:0:64:5840:M:N:N:N
  739. Linksys Router:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:2:1:1:1:0:1:255:5840:M:N:N:N
  740. # Submitted by JKalf
  741. Linksys Router::1:S:0:255:0:255:1:0:255:1:0:255:1:8:255:0:S:2:2:1:1:1:1:1:128:64240:MNWNNTNNS:0:0:0
  742. # Submitted by alzeke
  743. Linksys Router:1:S:0:255:0:255:1:0:255:1:0:255:1:8:255:0:S:1:1:1:1:1:0:0:255:5840:M:N:N:N
  744. # Submitted by Christopher Walsh
  745. Linksys Access Hub WAP11:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:4608:M:N:N:N
  746.  
  747. # Linux 2.6.9-gentoo-r4 - Michel Arboi
  748. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:2:1:1
  749.  
  750. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:0:1:1
  751.  
  752. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:2:1:1
  753.  
  754. # Debian Sarge 2.6.7
  755. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5760:MSTNW:0:1:1
  756.  
  757. # Submitted by Steve Sanders
  758. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:255:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:2:1:
  759.  
  760. # Submitted by Mikael Andersson
  761. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:7:1:1
  762.  
  763. # Submitted by Justin Wienckow
  764. Linux Kernel 2.6:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:255:0:1:1:1:1:1:1:1:0:64:5840:MNNSNW:0:N:N
  765.  
  766. # Submitted by Boris Bielous - Linux Kernel 2.6.6
  767. Linux Kernel 2.6:1:1:0:64:0:64:1:0:64:1:0:64:1:>64:255:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  768.  
  769. # Submitted by Luigi Rosa - Linux Kernel 2.6
  770. Linux Kernel 2.6:1:S:1:255:1:255:S:0:255:S:0:255:S:8:255:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  771.  
  772.  
  773. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:1:1:64:5792:MTWSN:0:1:1
  774. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:255:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:0:1:1
  775. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:2:1:1:1:1:0:64:5792:MSTNW:0:1:1
  776.  
  777. Linux Kernel 2.4:1:1:0:64:0:64:1:0:64:1:0:64:1:>64:64:0:1:2:1:3:1:1:1:0:64:5792:MSTNW:0:1:1
  778.  
  779. Linux Kernel 2.4:1:1:0:64:0:64:1:0:64:1:0:64:1:>64:64:0:1:2:2:1:1:3:0:0:64:5792:MSTNW:0:1:1
  780.  
  781. # Linux 2.4.26 + grsecurity - submitted by CWL Hoogenboezem
  782. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:2:2:1:1:1:1:1:64:5792:MSTNW:0:1:1
  783. # Linux Gentoo 2.4.26-r10 + GrSec - Michel Arboi
  784. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:2:1:1:1:1:1:64:5792:MSTNW:0:1:1
  785.  
  786. # Linux 2.4.24 - submitted by Rodik
  787. IPCop (Linux Kernel 2.4 firewall):1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5840:M:N:N:N
  788. # Linux 2.4.{19,21} - submitted by Vincent Renardias
  789. Linux Kernel 2.4:1:1:0:64:0:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  790. # Linux Kernel 2.4.22
  791. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:0:1:64:5592:MSTNW:0:1:1
  792.  
  793.  
  794. # Linux 2.4.20-28.7 (Dragon) - submitted by Mike Leahy
  795. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5512:MSTNW:0:1:1
  796.  
  797. # Linux 2.4.21-15 (RHEL AS3) - submitted by Jason Dravet
  798. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:255:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  799. # Linux 2.4.20 - submitted by Clyde Hoadley
  800. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:1:64:5792:MSTNW:0:1:1
  801.  
  802. # Submitted by Paul Kuhanst
  803. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:3:1:1:1:0:64:5792:MSTNW:0:1:1
  804.  
  805. # 2.4.17 to 2.4.xx
  806. Linux Kernel 2.4:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  807.  
  808. # Linux 2.4.4 by Maximilian Eul
  809. Linux Kernel 2.4:1:0:1:255:1:255:0:0:255:0:0:255:0:>64:255:1:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  810. # This actually is 2.4.0 to 2.4.17
  811. Linux Kernel 2.4:1:1:0:255:1:255:1:0:255:1:0:255:1:>64:255:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  812.  
  813. # Linux 2.4.18 on SuSE - by Billy Holmes
  814. Linux Kernel 2.4:1:1:0:255:0:255:1:0:255:1:0:255:1:>64:255:0:1:1:1:1:1:1:1:0:64:5792:MSTNW:0:1:1
  815.  
  816. Linux Kernel 2.4:1:1:0:255:1:255:1:0:255:1:0:255:1:64:255:0:1:1:1:1:1:1:1:1:128:5792:MSTNW:0:1:1
  817. Linux Kernel 2.4:1:1:0:255:1:255:1:0:255:1:0:255:1:64:255:0:1:1:1:1:1:1:1:1:64:5792:MSTNW:0:1:1
  818.  
  819. # Submitted by Ryan Tryssernaar
  820. Linux Kernel 2.2:1:1:0:255:1:255:1:0:255:1:0:255:1:>64:255:0:1:1:1:1:1:1:1:1:64:32120:MSTNW:0:1:1
  821.  
  822. # Submitted by H D Moore
  823. Linux Kernel 2.2:1:1:0:255:1:255:1:0:255:1:0:255:1:64:255:0:1:1:1:1:1:1:1:1:64:16060:MSTNW:0:1:1
  824.  
  825. # Submitted by Greg Roelofs
  826. Linux Kernel 2.0:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:0:1:64:16352:M:N:N:N
  827.  
  828.  
  829. Mac OS X 10.3:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:65535:MNWNNT:0:1:1
  830. # Submitted by Evan Wunderle - Mac OS 10.3.2
  831. Mac OS X 10.3:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:33304:MNWNNT:0:1:1
  832. # 10.3.2 by 'rewriteit'
  833. Mac OS X 10.3:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:65535:MNWNNT:1:1:1
  834. # Submitted by Geoff King
  835. Mac OS X 10.2:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:1:1:1:1:1:1:64:33304:MNWNNT:0:1:1
  836.  
  837.  
  838.  
  839. # Submitted by Ricardo Stella
  840. Mac OS 9:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:2:1:3:1:1:1:1:255:1380:MWNNNT:0:1:1
  841. # Mac OS 8.6
  842. Mac OS 8:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:2:1:3:1:1:1:1:255:1380:MW:0:N:N
  843.  
  844. # Submitted by H D Moore
  845. Microsoft Longhorn:0:1:0:128:0:128:1:0:128:1:0:128:1:64:128:0:1:1:1:1:1:1:1:1:128:16384:MWNST:0:1:1
  846.  
  847. # Submitted by Chris Gamboni
  848. Microsoft Windows 2003 Server:0:1:1:128:1:128:1:0:128:1:0:128:1:>64:128:0:1:1:1:1:1:1:1:1:128:17520:MNWNNTNNS:0:0:0
  849. Microsoft Windows 2003 Server:0:1:1:128:1:128:1:0:128:1:0:128:1:>64:128:0:1:1:1:1:1:1:1:1:128:65535:MNWNNTNNS:0:0:0
  850. # Submitted by Andrew Cox
  851. Microsoft Windows 2003 Server:0:1:0:128:0:128:1:0:128:1:0:128:1:>64:128:0:1:2:1:1:1:3:0:1:128:17520:MNWNNTNNS:0:0:0
  852. # Submitted by Burt Soltero
  853. Microsoft Windows 2003 Server:0:1:1:128:1:128:1:0:128:1:0:128:1:>64:128:0:1:1:1:1:1:1:0:1:128:16384:MNWNNTNNS:0:0:0
  854. # Submitted by Kulbinder S Kalirai
  855. Microsoft Windows 2003 Server:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:1:128:17520:MNWNNTNNS:0:0:0
  856.  
  857.  
  858. # Submitted by Mattias Webjorn Eriksson
  859. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:17520:MNWNNTNNS:0:0:0
  860. # Submitted by Giulio Marchionni
  861. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:65340:MNWNNT:0:0:0
  862. # Submitted by Kai Hofmann - XP Pro SP1
  863. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:64440:MNWNNTNNS:0:0:0
  864. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:64240:MNWNNTNNS:0:0:0
  865. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:17520:MNWNNTNNS:0:0:0
  866. # Submitted by Jim Cassata - XP Pro + Cisco vpn 3.5.2
  867. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:65268:MNWNNTNNS:0:0:0
  868. # Submitted by Yoni
  869. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:17680:MNWNNTNNS:0:0:0
  870. # Submitted by Zube
  871. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:16384:MNNS:N:N:N
  872. # Submitted by Olivier Marechal - SP1
  873. Microsoft Windows XP Professional:0:1:1:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:1:1:64:64240:MNWNNS:2:N:N
  874. # Submitted by Petar Krasmirov
  875. Microsoft Windows XP Professional:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:65280:MNWNNTNNS:0:0:0
  876. # Submitted by Ruslan Savshyn
  877. Microsoft Windows XP Professional:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:64240:MNWNNTNN:0:0:0
  878. # Submitted by 'Securite Antivirus' (ac-besancon)
  879. Microsoft Windows XP Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:65520:MNWNNTNNS:0:0:0
  880.  
  881. # Submitted by Jutta Zalud
  882. Microsoft Windows XP Home Edition:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:17680:MNWNNTNNS:0:0:0
  883.  
  884. Microsoft Windows XP Home Edition:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:2:1:1:1:1:1:1:128:64240:MNWNNTNNS:0:0:0
  885.  
  886. # Submitted by Todd
  887. Microsoft Windows 2000 Server Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:2:1:1:1:1:1:1:128:65535:MNWNNTNNS:0:0:0
  888. # Submitted by Erik Ball
  889. Microsoft Windows 2000 Server Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:65535:MNWNNTNNS:0:0:0
  890. # Submitted by Christopher Walsh
  891. Microsoft Windows 2000 Server Service Pack 4:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:17520:MNWNNTNNS:0:0:0
  892. # Submitted by Paul MacLennan
  893. Microsoft Windows 2000 Server Service Pack 4:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:65535:MNWNNTNNS:0:0:0
  894. # Submitted by Lance Lloyd
  895. Microsoft Windows 2000 Server Service Pack 4:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:2:1:1:1:1:1:1:128:17640:MNWNNTNNS:0:0:0
  896.  
  897. # Submitted by Skyler Bingham
  898. Microsoft Windows 2000 Server Service Pack 2:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:16872:MNWNNTNNS:0:0:0
  899.  
  900. Microsoft Windows 2000 Server:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:65535:MNWNNTNNS:0:0:0
  901.  
  902. Microsoft Windows 2000 Professional Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:2:1:1:1:1:1:128:17520:MNWNNTNNS:0:0:0
  903.  
  904. # Submitted by Jakob Staerk
  905. Microsoft Windows 2000 Professional:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:64512:MNWINNTNNS:0:0:0
  906. # Submitted by Florin Mariutea
  907. Microsoft Windows 2000 Professional Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:MNWNNTNNS:0:0:
  908. # Submitted by fr3ak
  909. Microsoft Windows 2000 Professional Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:32767:MNWNNS:0:N:N
  910. # Submitted by Kurt Mosiejczuk
  911. Microsoft Windows 2000 Professional Service Pack 4:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:3:1:1:0:1:128:17520:MNWNNTNNS:0:0:0
  912.  
  913. # Submitted by Nick Nero
  914. Microsoft Windows NT 4.0 Server:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:3:1:1:1:1:128:8760:M:N:N:N
  915. # Submitted by Ralph Utz
  916. Microsoft Windows NT 4.0 Server:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8280:M:N:N:N
  917. Microsoft Windows NT 4.0 Workstation:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8280:M:N:N:N
  918.  
  919. Microsoft Windows NT 4.0 Server:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:M:N:N:N
  920. Microsoft Windows NT 4.0 Workstation:0:1:1:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:M:N:N:N
  921. Microsoft Windows NT 4.0 Workstation (pre-SP3):0:1:1:128:0:128:1:1:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:M:N:N:N
  922. Microsoft Windows NT 4.0 Server (pre-SP3):0:1:1:128:0:128:1:1:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:M:N:N:N
  923.  
  924. # Submitted by Roman Rodak
  925. Microsoft Windows ME:0:1:1:128:1:128:1:1:128:1:0:128:1:8:128:0:1:2:1:1:1:1:1:1:128:8576:MNNS:N:N:N
  926.  
  927.  
  928. # Submitted by Sergy Osipov
  929. Microsoft Windows ME:0:1:1:128:1:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:4736:MNWNNTNNS:0:0:0
  930.  
  931. # Submitted by Martin Kown
  932. Microsoft Windows ME:0:1:1:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:3:1:1:1:1:64:32767:MNWNNTNNS:0:0:0
  933.  
  934. # Submitted by George Theall
  935. Microsoft Windows 95:0:1:1:128:0:128:1:1:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:MNWNNTNNS:0:0:0
  936.  
  937. # Submitted by Patrick Davignon - 4.00.950B Build 1111
  938. Microsoft Windows 95:0:1:1:32:0:32:1:1:32:1:0:32:1:8:32:0:1:1:1:1:1:1:1:1:32:8760:M:N:N:N
  939.  
  940.  
  941. # Submitted by Slim Amamou
  942. Microsoft Windows 98:0:1:1:64:1:64:1:1:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:8576:MNNS:N:N:N
  943. Microsoft Windows 98:0:1:1:128:1:128:1:1:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:8760:MNNS:N:N:N
  944.  
  945. # Submitted by Martin Leung
  946. Microsoft Windows 98:0:1:1:128:1:128:1:1:128:1:0:128:1:8:128:0:1:1:1:3:1:1:1:1:128:8760:MNNS:N:N:N
  947.  
  948. # Submitted by W. Anderson
  949. Microsoft Windows 98:0:1:1:64:1:64:1:1:64:1:0:64:1:8:64:0:1:1:1:1:1:1:1:1:64:64240:MNNS:N:N:N
  950.  
  951. # Submitted by Ego Kastelijin
  952. Microsoft Windows 98:0:1:1:64:1:64:1:1:64:1:0:64:1:8:64:0:1:1:1:1:1:1:1:1:64:32767:MNNS:N:N:N
  953.  
  954. # Submitted by H D Moore
  955. Motorola Vanguard:0:1:0:64:0:64:1:1:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:2048:M:N:N:N
  956.  
  957. Motorola Vanguard:0:1:0:64:0:64:1:1:64:1:0:64:1:8:64:0:1:1:2:1:1:1:0:1:64:2048:M:N:N:N
  958.  
  959.  
  960. # Submitted by Ian Anderson (version is 4.0.1.14)
  961. Netilla Service Platform 4.0:1:1:0:64:1:64:1:0:64:1:0:64:1:>64:64:0:1:1:1:1:1:1:1:0:64:5840:MNNSNW:0:N:N
  962.  
  963. # Submitted by patrick O'connor
  964. Netopia Router:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:2048:M:N:N:N
  965.  
  966. NetGear ProSafe VPN Firewall (FVS318):1:S:1:64:0:64:1:0:64:1:0:64:1:X:X:X:X:X:X:X:X:X:0:1:32:4095:M:N:N:N
  967. NetGear Wireless Router (MR814):1:1:0:255:0:255:1:0:255:1:1:255:1:X:X:X:X:X:X:X:X:X:0:1:255:2048:M:N:N:N
  968.  
  969. NeXT:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:64:4096:MS:N:N:N
  970.  
  971.  
  972. # Submitted by Audun Larsen (Netopia 3351 v8.0.10)
  973. Netopia Router:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:1:1:64:57344:MNWNNT:0:1:1
  974.  
  975. # Submitted by Alonso Torres (Netopia R9100 v4.11.3)
  976. Netopia Router:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:8800:M:N:N:N
  977.  
  978. # Submitted by H D Moore
  979. Nortel Business Policy Switch:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:MNW:0:N:N
  980.  
  981. # Submitted by Mason Brown
  982. Nortel Contivity:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:2:3:1:3:0:1:64:8760:MNWNNT:0:1:1
  983.  
  984. # Submitted by jiang zuowen
  985. Nortel 6480 Router:1:1:0:64:1:64:1:0:64:1:0:64:1:8:255:0:1:1:1:1:1:1:0:1:32:4096::N:N:N
  986.  
  987. # Submitted by Mark Basset
  988. Nokia IPSO Firewall:1:1:1:255:0:255:1:0:255:1:0:255:1:X:X:X:X:X:X:X:X:X:0:1:64:16384:MNWNNT:0:1:1
  989. # Submitted by Todd H
  990. Nokia IPSO 3.5:1:1:1:255:1:255:1:0:255:1:0:255:1:>64:255:1:1:0:1:1:1:1:0:1:64:16384:MNWNNT:0:1:1
  991. Nokia IPSO 3.7:1:1:1:255:1:255:1:0:255:1:0:255:1:>64:255:1:1:0:1:1:1:1:0:1:64:16384:MNWNNT:0:1:1
  992.  
  993. # Submitted by Nicolas Nerson - netware 5.1 SP4
  994. Novell Netware 5.1:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:6144:MWNSNN:0:N:N
  995. # Submitted by Dave - Novell 5.1 Server version 5.00h, NDS version 8.38
  996. Novell Netware 5.1:1:1:0:128:0:128:1:1:255:1:0:255:1:8:128:0:1:1:1:1:1:1:1:1:128:8191:M:N:N:N
  997. # SP6
  998. Novell Netware 5.1:1:1:0:128:0:128:1:1:255:1:0:255:1:8:128:0:1:1:1:1:1:1:1:1:128:6144:MWNSNN:0:N:N
  999. # Submitted by Michael Scheidell - Novell NetWare 5.60.03 March 27, 2003
  1000. Novell Netware 5.6:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:6144:MWNSNN:0:N:N
  1001. Novell Netware 5.6:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:6144:MWNSNN:1:N:N
  1002. Novell Netware 6.0:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:1:1:128:6144:MWNSNN:0:N:N
  1003.  
  1004.  
  1005. # Submitted by Bill Petersen
  1006. OmniSwitch:1:1:1:32:1:32:1:1:32:1:1:32:1:8:32:1:1:0:0:1:1:1:0:1:32:4096::N:N:N
  1007.  
  1008. OpenBSD 3.6:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:64:65335:MNNSNWNNT:0:1:1
  1009.  
  1010. # Submitted by Jay Reffner
  1011. OpenBSD 3.4:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:1:1:64:17376:MNNSNWNNT:0:1:1
  1012.  
  1013. # Submitted by Rich
  1014. OpenBSD 3.5:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:64:16384:MNNSNWNNT:0:1:1
  1015.  
  1016. # Submitted by Dead Jester
  1017. OpenBSD 3.2:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:0:1:1:2:1:>20:1:1:1:64:17280:MNNSNWNNT:0:1:1
  1018.  
  1019. OpenBSD 3.1:1:1:1:255:1:255:1:0:255:1:0:255:1:8:255:0:1:1:2:1:>20:1:1:1:64:17376:MNNSNWNNT:0:1:1
  1020. OpenBSD 2.9:1:1:1:255:0:255:1:0:255:1:0:255:1:8:255:0:1:2:1:1:>20:1:1:1:64:16992:MNNSNWNNT:0:1:1
  1021. OpenBSD 2.7:0:1:0:64:0:64:1:0:64:1:0:64:1:8:255:0:1:2:2:1:>20:1:0:1:64:16500:MNNSNWNNT:0:1:1
  1022.  
  1023. # Submitted by Hal Davis - DEC VMS MultiNet V4.2(16)/ OpenVMS V7.1-2
  1024. OpenVMS 7.1:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:1:1:64:6144:MNWNNT:0:1:1
  1025.  
  1026. # Submitted by Craig Carpenter - OpenVMS 7.1-1H2 running on a HP Alpha 4100
  1027. OpenVMS 7.1-1H2:1:1:0:255:1:255:1:1:255:1:1:255:1:8:255:0:1:1:0:3:1:3:0:1:128:3000::N:N:N:
  1028.  
  1029. # Submitted by Enno Rey
  1030. OpenVMS 7.2:1:1:1:64:1:64:1:0:64:1:1:64:1:8:64:1:1:0:1:1:1:1:0:1:64:33580:MNW:0:N:N
  1031.  
  1032. OpenVMS 7.2:1:1:1:64:1:64:1:0:64:1:1:64:1:8:64:1:1:0:1:1:1:1:0:1:64:4380:MNW:0:N:N
  1033.  
  1034.  
  1035. # Submitted by H D Moore
  1036. OpenVMS:1:1:1:64:1:64:1:0:64:1:1:64:1:8:64:1:1:1:1:1:1:1:0:1:64:61440:MNW:0:N:N
  1037.  
  1038. # Submitted by Joe Clifton
  1039. OS/2 2.4:1:1:1:64:1:64:1:1:64:1:0:64:1:8:64:1:1:0:0:3:1:3:1:1:64:33580:MNW:0:N:N
  1040. OS/2 Warp 4.0 Advanced Server:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:64:28672:M:N:N:N
  1041. OS/2 Warp 4.0 Advanced Server:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:64:4096:M:N:N:N
  1042.  
  1043. OS/2 Warp 4.0:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:32:27588:M:N:N:N
  1044.  
  1045.  
  1046. # Submitted by Maarten Hartsuijker
  1047. PacketShaper 4.1:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:1:0:1:1:3:0:1:64:4096:M:N:N:N
  1048.  
  1049. # Submitted by Daniel Wesemann
  1050. PacketShaper 6:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:1:0:3:1:3:0:1:64:4096::N:N:N
  1051. PacketShaper 6:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:1:0:3:1:3:0:1:64:1460::N:N:NA
  1052.  
  1053.  
  1054. # Submitted by Shawn Lukaschuk
  1055. Perle CONSOLESERVER 9000:1:1:1:255:1:255:1:0:255:1:1:255:1:8:255:1:1:0:0:3:1:3:0:1:64:2048:M:N:N:N
  1056.  
  1057. # submited by Kendall Risselada
  1058. Phaser 850DP:1:1:0:128:0:128:1:0:128:1:0:128:1:8:128:0:1:1:1:1:1:1:0:1:128:2920:M:N:N:N
  1059.  
  1060. # Submitted by Sean Buffington (SoundPoint IP 500)
  1061. Polycom SoundPoint IP Phone:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:8192:M:N:N:N
  1062.  
  1063. # Submitted by Dirk De Wit
  1064. Polycom Viewstation:0:1:1:64:0:64:1:0:64:1:0:64:1:64:64:0:1:1:1:1:1:1:0:1:64:23360:M:N:N:N
  1065.  
  1066. # Submitted by Lee Reynolds
  1067. Quantum Snap Server:1:1:1:255:0:255:1:0:255:1:0:255:1:8:255:1:1:0:0:3:1:3:0:1:32:8760:M:N:N:N
  1068.  
  1069.  
  1070. # Submitted by John Ward
  1071. SCO OpenServer 5.0.7:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:2:1:1:1:0:1:64:33580:M:N:N:N
  1072. # Submitted by David Lodge
  1073. SCO OpenServer 5.0.6:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:1:1:1:1:1:1:1:64:24820:M:N:N:N
  1074. # Submitted by Jeff Groves
  1075. SCO OpenServer 5.0.6:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:4380:M:N:N:N
  1076.  
  1077.  
  1078.  
  1079. # Submitted by Bill Jackson
  1080. SCO OpenServer 5.0.5:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:24820:M:N:N:N
  1081.  
  1082. # Submitted by Carlo Tognetti
  1083. SCO UnixWare 2.1.3:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:1:2:3:1:3:0:1:64:4096:M:N:N:N
  1084.  
  1085. # Submitted by Michel Arboi
  1086. SCO UnixWare 8.0:1:1:0:64:1:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:24820:MNWNNT:0:1:1
  1087.  
  1088. # Submitted by Michael Scheidell
  1089. SonicWall Firewall:1:1:1:64:0:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:8192:MNW:0:N:N
  1090.  
  1091. # Sumitted by Pauli Borodulin
  1092. Sony Contact PCS-1600:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:2144:M:N:N:N
  1093. # Submitted by Lee Reynolds
  1094. Sony Network Camera SNC-RZ30N:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:64:8688:MNWNNSNNT:0:1:1
  1095.  
  1096. # Submitted by Paul Gibson
  1097. Sun RSC Card:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:MNW:0:N:N
  1098.  
  1099. # Submitted by Wayne Barber
  1100. Sun Solaris 2.5:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:255:8760:M:N:N:N
  1101. # Submitted by Johan Srilden
  1102. Sun Solaris 7:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:3:1:1:1:1:255:10136:NNTNWNNSM:0:1:1
  1103. # Solaris - by HD Moore
  1104. Sun Solaris 7:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:33304:NNTMNWNNS:1:1:1
  1105. Sun Solaris 7:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:255:10136:NNTNWNNSM:0:1:1
  1106. Sun Solaris 7:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:255:10136:NNTNWM:0:1:1
  1107. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:24616:NNTNWNNSM:0:1:1
  1108. Sun Solaris 8:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:3:1:1:1:1:64:24616:NNTNWNNSM:0:1:1
  1109.  
  1110. # Submitted by Joah Sorliden
  1111. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:3:1:1:1:1:64:24616:NNTNWNNSM:0:1:1
  1112.  
  1113. # Sumitted by HoJoToGo
  1114. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:24624:NNTNWNNSM:0:1:1
  1115.  
  1116. # Submitted by Pavel Vachek - Solaris 8 + IP filter
  1117. Sun Solaris 8:1:1:1:255:0:255:1:0:255:1:0:255:1:8:64:1:1:1:1:1:1:1:1:1:64:24616:NNTNWNNSM:0:1:1
  1118.  
  1119. # Submitted by Lee Reynolds
  1120. Sun Solaris 8:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:33304:NNTNWNNSM:0:1:1
  1121.  
  1122. # Submitted by Abri Du Plooy
  1123. Sun Solaris 8:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:3:1:1:1:1:64:33304:NNTNWNNSM:1:1:1
  1124.  
  1125. Sun Solaris 8:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:2:1:1:1:1:1:64:24616:NNTNWNNSM:0:1:1
  1126.  
  1127. Sun Solaris 9:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:49232:NNTMNWNNS:0:1:1
  1128.  
  1129. Sun Solaris 9:1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:2:1:1:1:1:1:1:64:49248:NNTMNWNNS:0:1:1
  1130.  
  1131. # Submitted by Michael H Busse
  1132. Sun Solaris 9:1:1:1:255:0:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:49232:NNTMNWNNS:0:1:1
  1133.  
  1134.  
  1135. # Submited by H D Moore
  1136. Sun Solaris 9 (x86):1:1:1:255:1:255:1:1:255:1:0:255:1:64:255:1:1:1:1:1:1:1:1:1:64:33304:NNTMNWNNS:1:1:1
  1137.  
  1138. Sharp Copier Printer:1:1:1:64:0:64:1:0:64:1:0:64:1:64:64:0:1:1:1:1:1:1:0:1:64:2048:M:N:N:N
  1139.  
  1140. Tandem:1:1:1:255:1:255:1:1:255:1:1:255:1:8:255:1:1:0:0:1:1:1:0:1:32:8192:MNWNNT:0:1:1
  1141.  
  1142. # Submitted by Jim Southwell - Therometer www.sensatronics.com
  1143. TempTrax Digital Thermometer:1:1:0:64:0:64:1:0:64:1:0:64:1:8:64:0:1:1:1:1:1:1:0:1:64:0:M:N:N:N
  1144.  
  1145. # Submitted by Stephen B Suddeth
  1146. Tru64 Unix version 5.1:1:1:1:64:1:64:1:1:64:1:1:64:1:8:64:1:1:1:1:1:1:1:0:1:128:61440:MNW:0:N:N
  1147.  
  1148. # Submitted by Paul Lamb
  1149. Tru64 Unix version 5.1:1:1:1:64:1:64:1:0:64:1:1:64:1:>64:64:1:1:1:1:1:1:1:0:1:128:61440:MNW:0:N:N
  1150.  
  1151.  
  1152. ULTRIX 4.4:1:1:0:255:1:255:1:1:255:1:1:255:1:8:255:0:1:0:0:3:1:3:0:1:64:16384:M:N:N:N
  1153.  
  1154.  
  1155. # Submitted by Stuart Halliday
  1156. Vigor2600:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:1:1:1:1:1:0:1:255:2100:M:N:N:N
  1157. Vigor2600:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:2:2:1:1:1:0:1:255:2100:M:N:N:N
  1158. Vigor2600:1:1:0:255:0:255:1:0:255:1:0:255:1:8:255:0:1:2:1:1:1:1:0:1:255:2100:M:N:N:N
  1159. # Submitted by Randy Jones
  1160. VxWorks 5.1:1:1:1:64:1:64:1:1:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:MNW:0:N:N
  1161. # Submitted by Michael Scheidell
  1162. VxWorks 5.4:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:3:1:3:0:1:64:8192:MNWNNT:0:1:1
  1163. # Submitted by Thomas Karsten Bauer
  1164. VxWorks 5.4:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:MNWNNT:0:1:1
  1165. # Submitted by Pauli Porodulin
  1166. Xerox DocuColor:1:1:1:64:1:64:1:0:64:1:0:64:1:8:64:1:1:0:0:1:1:1:0:1:64:8192:M:N:N:N
  1167. ";
  1168.  
  1169.  
  1170. function make_ttl(ttl)
  1171. {
  1172.  if ( ttl <= 32 )
  1173.     return 32;
  1174. else if ( ttl <= 64 )
  1175. return 64;
  1176. else if ( ttl <= 128 )
  1177. return 128;
  1178. else return 255;
  1179. }
  1180.  
  1181.  
  1182. function icmp_echo_probe()
  1183. {
  1184. id = rand() % 65534;
  1185. ip = forge_ip_packet(ip_v:4, ip_hl:5, ip_tos:6, ip_off:IP_DF,ip_len:20,
  1186.         ip_p:IPPROTO_ICMP, ip_id:0x4747, ip_ttl:0x40,
  1187.         ip_src:this_host());
  1188. icmp = forge_icmp_packet(ip:ip, icmp_type:8, icmp_code:123,
  1189.             icmp_seq: id, icmp_id:id);
  1190.  
  1191. for ( i = 0 ; i < MAX_RETRIES ; i ++ )
  1192. {
  1193. filter = "icmp and src host " + get_host_ip() + " and icmp[0:1]=0 and icmp[6:2] = " + id;
  1194. reply = send_packet(icmp, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1195. if ( reply ) break;
  1196. }
  1197.  
  1198. if ( reply == NULL ) {  exit(0); }
  1199.  
  1200. sig = NULL;
  1201. code = get_icmp_element(icmp:reply, element:"icmp_code");
  1202.  
  1203. if ( code ) sig = ":1";
  1204. else sig = ":0";
  1205.  
  1206. ipid = get_ip_element(ip:reply, element:"ip_id");
  1207. if ( ipid == 0x4747 ) sig += ":S";
  1208. else if (ipid != 0) sig += ":1";
  1209. else sig += ":0";
  1210.  
  1211. tos = get_ip_element(ip:reply, element:"ip_tos");
  1212. #sig += ":[01]";
  1213. #if ( tos == 0 ) 
  1214. #sig += ":0";
  1215. #else 
  1216. #sig += ":1";
  1217.  
  1218. df_bit = get_ip_element(ip:reply, element:"ip_off");
  1219. if ( df_bit & IP_DF ) sig += ":1";
  1220. else sig += ":0";
  1221.  
  1222. ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1223.  
  1224. sig += ":" + ttl;
  1225.  
  1226. return sig;
  1227. }
  1228.  
  1229.  
  1230. function icmp_timestamp_probe()
  1231. {
  1232.  id = rand() % 65535;
  1233. ip = forge_ip_packet(ip_hl:5, ip_v:4,   ip_off:0,
  1234.          ip_id:0x4343, ip_tos:0, ip_p : IPPROTO_ICMP,
  1235.          ip_len : 20, ip_src : this_host(),
  1236.                      ip_ttl : 255);
  1237.  
  1238.  icmp = forge_icmp_packet(ip:ip,icmp_type : 13, icmp_code:0,
  1239.                           icmp_seq : 1, icmp_id : id);
  1240.  
  1241.  
  1242.  filter = "icmp and src host " + get_host_ip() + " and icmp[0:1] = 14 and icmp[4:2] = " + id;
  1243.  #display(filter, "\n");
  1244.  for ( i = 0 ; i < MAX_RETRIES ; i ++ )
  1245.    {
  1246.      reply = send_packet(icmp, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1247.      if ( reply ) break;
  1248.    }
  1249.  
  1250.  if ( reply == NULL ) 
  1251.  {
  1252.   sig = ":0:" + ttl + ":1";
  1253.   return sig;
  1254.  }
  1255.  
  1256.  sig = ":1";
  1257.  ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1258.  sig += ":" + ttl;
  1259.  
  1260.  ipid = get_ip_element(ip:reply, element:"ip_id");
  1261.  if ( ipid == 0x4343 ) { sig += ":S"; ip_id_sent = "S"; }
  1262.  else if (ipid != 0) { sig += ":1"; ip_id_sent = "1"; }
  1263.  else { sig += ":0"; ip_id_sent = "0"; }
  1264.  
  1265.  
  1266.  return sig;
  1267. }
  1268.  
  1269.  
  1270. function icmp_netmask_probe()
  1271. {
  1272.   id = rand() % 65535;
  1273.   ip = forge_ip_packet(ip_hl:5, ip_v:4,   ip_off:0,
  1274.                      ip_id:0x4444, ip_tos:0, ip_p : IPPROTO_ICMP,
  1275.                      ip_len : 20, ip_src : this_host(),
  1276.                      ip_ttl : 255);
  1277.   icmp = forge_icmp_packet(ip:ip,icmp_type : 17, icmp_code:0,
  1278.                           icmp_seq : 1, icmp_id : id, data:raw_string(0xFF, 0xFF, 0xFF, 0xFF));
  1279.  
  1280.  filter = "icmp and src host " + get_host_ip() + " and icmp[0:1] = 18 and icmp[4:2] = " + id;
  1281.  #display(filter, "\n");
  1282.  for ( i = 0 ; i < MAX_RETRIES ; i ++ )
  1283.    {
  1284.      reply = send_packet(icmp, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1285.      if ( reply ) break;
  1286.    }
  1287.  
  1288.  if ( reply == NULL ) 
  1289.  {
  1290.   sig = ":0:" + ttl + ":" + ip_id_sent;
  1291.   return sig;
  1292.  }
  1293.  
  1294.  sig = ":1";
  1295.  ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1296.  sig += ":" + ttl;
  1297.  
  1298.  ipid = get_ip_element(ip:reply, element:"ip_id");
  1299.  if ( ipid == 0x4444 ) { sig += ":S"; ip_id_sent = "S"; }
  1300.  else if (ipid != 0) { sig += ":1"; ip_id_sent = "1"; }
  1301.  else { sig += ":0"; ip_id_sent = "0"; }
  1302.  
  1303.  return sig;
  1304. }
  1305.  
  1306. function icmp_inforeq_probe()
  1307. {
  1308.   id = rand() % 65535;
  1309.   ip = forge_ip_packet(ip_hl:5, ip_v:4,   ip_off:0,
  1310.                      ip_id:0x4545, ip_tos:0, ip_p : IPPROTO_ICMP,
  1311.                      ip_len : 20, ip_src : this_host(),
  1312.                      ip_ttl : 255);
  1313.   icmp = forge_icmp_packet(ip:ip,icmp_type : 15, icmp_code:0,
  1314.                           icmp_seq : 1, icmp_id : id);
  1315.  
  1316.  filter = "icmp and src host " + get_host_ip() + " and icmp[0] = 16 and icmp[4:2] = " + id;
  1317.  #display(filter, "\n");
  1318.  for ( i = 0 ; i < MAX_RETRIES ; i ++ )
  1319.    {
  1320.      reply = send_packet(icmp, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1321.      if ( reply ) break;
  1322.    }
  1323.  
  1324.  if ( reply == NULL ) 
  1325.  {
  1326.   sig = ":0:" + ttl + ":" + ip_id_sent;
  1327.   return sig;
  1328.  }
  1329.  
  1330.  sig = ":1";
  1331.  ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1332.  sig += ":" + ttl;
  1333.  
  1334.  ipid = get_ip_element(ip:reply, element:"ip_id");
  1335.  if ( ipid == 0x4545 ) sig += ":S";
  1336.  else if (ipid != 0) sig += ":1";
  1337.  else sig += ":0";
  1338.  
  1339.  return sig;
  1340. }
  1341.  
  1342. function icmp_udpunreach_probe()
  1343. {
  1344.   local_var i;
  1345.  
  1346.   filter = "icmp[30:2] = 42000";
  1347.   for ( i = 1 ; i < MAX_RETRIES * 2 ; i ++ )
  1348.   {
  1349.     filter += " or icmp[30:2] = " + string(42000 + i);
  1350.   }
  1351.  
  1352.   sig = "";
  1353.  filter = "icmp and src host " + get_host_ip() + " and icmp[0] = 3 and (" + filter + ")";
  1354.  
  1355.  
  1356.  for ( i = 0 ; i < MAX_RETRIES * 2 ; i ++ )
  1357.    {
  1358.     ip = forge_ip_packet(ip_v   : 4, ip_hl  : 5, ip_tos : 0, ip_id  : 0x4664, ip_len : 20, ip_off : IP_DF, ip_p   : IPPROTO_UDP, ip_src : this_host(), ip_ttl : 255);
  1359.     ip = insstr(ip, raw_string(0x46, 0x64), 4, 5);
  1360.     udpip = forge_udp_packet( ip : ip, uh_sport : 53, uh_dport : 42000 + i, uh_ulen :8+128, uh_sum:0, data:crap(128));          
  1361.  
  1362.   # Work around a nasl bug.
  1363.   reply = send_packet(udpip, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1364.      if ( reply ) break;
  1365.    }
  1366.  
  1367.  if ( ! reply ) 
  1368.  {
  1369.   return ":X:X:X:X:X:X:X:X:X:X";
  1370.  }
  1371.  
  1372.  hl  = get_ip_element(ip:reply, element:"ip_hl");
  1373.  len = get_ip_element(ip:reply, element:"ip_len");
  1374.  len -= hl * 4 + 8 + 20;
  1375.  
  1376.  # udp_echoed_dtsize
  1377.  
  1378.  if ( len == 8 ) sig = ":8";
  1379.  else if ( len <= 64 ) sig = ":64";
  1380.  else sig = ":>64";
  1381.  
  1382.  # reply_ttl 
  1383.  ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1384.  sig += ":" + ttl;
  1385.  
  1386.  # Precedence bits
  1387.  tos = get_ip_element(ip:reply, element:"ip_tos");
  1388.  #sig += ":[012]";
  1389.  #if ( tos == 0 ) sig += ":0";
  1390.  #else if ( tos == 0xc0 ) sig += ":2";
  1391.  #else sig += ":1";
  1392.  
  1393.  # Unfrag bit
  1394.  unfrag = get_ip_element(ip:reply, element:"ip_off");
  1395.  if ( unfrag & IP_DF ) sig += ":1";
  1396.  else sig += ":0";
  1397.  
  1398.  # IP ID
  1399.  ipid = get_ip_element(ip:reply, element:"ip_id");
  1400.  if ( ipid == 0x4664 || ipid == 0x6446) sig += ":S";
  1401.  else if (ipid != 0) sig += ":1";
  1402.  else sig += ":0";
  1403.  
  1404.  # Checksums
  1405.  udp = substr(reply, hl * 4 + 8 , strlen(reply) - 1);
  1406.  
  1407.  sum = substr(udp, 26, 27);
  1408.  udp2 = substr(udp, 20, 25) + raw_string(0,0) + substr(udp, 28, strlen(udp) - 1 );
  1409.  
  1410.  pseudo = substr(udp, 12, 19) + raw_string(0, 0x11) + htons(n:strlen(udp) - 20) + udp2;
  1411.  
  1412.  sum2 = ip_checksum(data:pseudo);
  1413.  origsum = substr(udpip, 26,27);
  1414.  if ( sum == raw_string(0,0) ) sig += ":0"; 
  1415.  else if ( sum == origsum || sum == sum2 ) sig += ":1";
  1416.  else sig += ":2";
  1417.  
  1418.  
  1419.  sum = get_ip_element(ip:udp, element:"ip_sum");
  1420.  udp2 = set_ip_elements(ip:udp, ip_sum:0);
  1421.  sum2 = get_ip_element(ip:udp2, element:"ip_sum");
  1422.  
  1423.  
  1424.  if ( sum == sum2 ) sig += ":1"; 
  1425.  else if ( sum == 0 ) sig += ":0";
  1426.  else sig += ":2";
  1427.  
  1428.  
  1429.  # echoed_ip_id
  1430.  ip_id = substr(udp, 4, 5);
  1431.  if ( hexstr(ip_id) == "4664" ) sig += ":1";
  1432.  else sig += ":3";
  1433.  
  1434.  # total_len
  1435.  len = get_ip_element(ip:udp, element:"ip_len");
  1436.  if ( len == 0x9c || len == 0x9c00 ) sig += ":1";
  1437.  else if ( len >= 20) sig += ":>20";
  1438.  else sig += ":<20";
  1439.  
  1440.  
  1441.  # 3bit_flag
  1442.  # ????
  1443.  off = substr(udp, 6, 7);
  1444.  if ( hexstr(off) == "4000" ) sig += ":1";
  1445.  else sig += ":3";
  1446.  
  1447.  
  1448.  return sig;
  1449. }
  1450.  
  1451.  
  1452. function tcp_synack_probe()
  1453. {
  1454.  port = get_host_open_port();
  1455.  if ( ! port ) {  exit(0); }
  1456.  
  1457.  for ( i = 0 ; i < MAX_RETRIES ; i ++ )
  1458.  {
  1459.  ip = forge_ip_packet(   ip_v : 4,
  1460.                         ip_hl : 5,
  1461.                         ip_tos : 0x10,
  1462.                         ip_len : 20,
  1463.                         ip_id : 0x4747,
  1464.                         ip_p : IPPROTO_TCP,
  1465.                         ip_ttl : 255,
  1466.                         ip_off : IP_DF,
  1467.                         ip_src : this_host());
  1468.  
  1469.  
  1470.  
  1471.   opts = raw_string(2, 4, 1460 / 256, 1460 % 256 );
  1472.   opts += raw_string(4, 2);
  1473.   time = raw_string(1,2,3,4,5,6,7,8);
  1474.   opts += raw_string(8, 10) + time;
  1475.   opts += raw_string(1);
  1476.   opts += raw_string(3, 3, 0);
  1477.   seq   = rand();
  1478.   tcpip = forge_tcp_packet(  ip       : ip,
  1479.                              th_sport : 4242,
  1480.                              th_dport : port,
  1481.                              th_flags : TH_SYN,
  1482.                              th_seq   : seq,
  1483.                              th_ack   : 0,
  1484.                              th_x2    : 0,
  1485.                              th_off   : (20+strlen(opts))/4,
  1486.                              th_win   : 5840,
  1487.                              th_urp   : 0, 
  1488.                  data     : opts);
  1489.  
  1490.  
  1491.      filter = "tcp and src host " + get_host_ip() + " and src port " + port + " and dst port 4242 and ( tcp[13:1] & " + string(TH_SYN|TH_ACK) + " == " + string(TH_SYN|TH_ACK) + " )";
  1492.      #display("filter=", filter, "\n");
  1493.      reply = send_packet(tcpip, pcap_active:TRUE, pcap_filter:filter, pcap_timeout:1);
  1494.      if ( strlen(reply) ) {
  1495.      flag = get_tcp_element(tcp:reply, element:"th_flags");
  1496.      if ( flag & (TH_SYN|TH_ACK) == TH_SYN|TH_ACK) break;
  1497.     }
  1498.    }
  1499.  
  1500.  if ( strlen( reply ) == 0 ) { exit(0); }
  1501.  
  1502.  
  1503.  tos = get_ip_element(ip:reply, element:"ip_tos");
  1504.  #sig = ":[^:]*"; 
  1505.  sig = "";
  1506.  #if ( tos == 0 ) sig = ":0";
  1507.  #else sig = ":" + hex(tos);
  1508.  
  1509.  
  1510.  df = get_ip_element(ip:reply, element:"ip_off");
  1511.  if ( df & IP_DF ) sig += ":1";
  1512.  else sig += ":0";
  1513.  
  1514.  
  1515.  ipid = get_ip_element(ip:reply, element:"ip_id");
  1516.  if ( ipid == 0x4747 ) sig += ":S";
  1517.  else if (ipid != 0) sig += ":1";
  1518.  else sig += ":0";
  1519.  
  1520.  ttl = make_ttl(ttl:get_ip_element(ip:reply, element:"ip_ttl"));
  1521.  sig += ":" + ttl;
  1522.  
  1523.  win = get_tcp_element(tcp:reply, element:"th_win");
  1524.  sig += ":" + win;
  1525.  
  1526.  hl = get_ip_element(ip:reply, element:"ip_hl");
  1527.  tcpopts = substr(reply, hl * 4 + 20, strlen(reply) - 1);
  1528.  
  1529.  str = "";
  1530.  blank = "";
  1531.  for ( i = 0 ; i < strlen(tcpopts); i ++ )
  1532.  {
  1533.   if ( ord(tcpopts[i]) == 2 ) str +=  "M";
  1534.   else if ( ord(tcpopts[i]) == 1 ) str += "N";
  1535.   else if ( ord(tcpopts[i]) == 4 ) str += "S";
  1536.   else if ( ord(tcpopts[i]) == 3 ) { 
  1537.     str += "W";
  1538.     wscale = ord(tcpopts[i+2]);
  1539.     }
  1540.   else if ( ord(tcpopts[i]) == 8 ) {
  1541.     str += "T";
  1542.     tsval = substr(tcpopts, i + 2, i + 6 );
  1543.         tsecr = substr(tcpopts, i + 6, i + 9);
  1544.       }
  1545.    else if (ord(tcpopts[i]) == 0 ) {  break; }
  1546.  
  1547.   if ( ord(tcpopts[i]) != 1 ) i += ord(tcpopts[i+1]) - 1;
  1548.  }
  1549.  
  1550.  sig += ":" + str;
  1551.  
  1552.  if ( !isnull(wscale) )
  1553.  {
  1554.   sig += ":" + wscale;
  1555.  }
  1556.  else sig += ":N";
  1557.  
  1558.  if ( tsval )
  1559.  {
  1560.  if( hexstr(tsval) >< "0000000000" ) sig += ":0";
  1561.  else sig += ":1";
  1562.  }
  1563.  else sig += ":N";
  1564.  
  1565.  if ( tsecr )
  1566.  {
  1567.  if( hexstr(tsecr) >< "0000000000" ) sig += ":0";
  1568.  else sig += ":1";
  1569.  }
  1570.  else sig += ":N";
  1571.  
  1572.   
  1573.  return sig;
  1574. }
  1575.  
  1576. #-------------------------------------------------------------------------------------------------#
  1577. # DCOM_RECV                                                                                              #
  1578. #-------------------------------------------------------------------------------------------------#
  1579. function dcom_recv(socket)
  1580. {
  1581.  local_var buf, len;
  1582.  
  1583.  buf = recv(socket:socket, length:9);
  1584.  if(strlen(buf) != 9)return NULL;
  1585.  
  1586.  len = ord(buf[8]);
  1587.  buf += recv(socket:socket, length:len - 9);
  1588.  return buf;
  1589. }
  1590.  
  1591. #-------------------------------------------------------------------------------------------------#
  1592. # CHECK_WINOS     - KK Liu    
  1593. # Updated 8/25/2004    - check kb first for WinOS identification                                        #
  1594. # Updated 11/04/2004- add XP sp2 identification                                                        #
  1595. #-------------------------------------------------------------------------------------------------#
  1596. function check_winos()
  1597. {
  1598.     kb = get_kb_item("Host/OS/smb");
  1599.     if ( kb ) 
  1600.     {
  1601.        name = NULL;
  1602.        if ("Windows 4.0" >< kb  ) { flag = 0; name = "Microsoft Windows NT 4.0"; }
  1603.        if ("Windows 5.0" >< kb  ) { flag = 0; name = "Microsoft Windows 2000"; }
  1604.        if ("Windows 5.0 Server" >< kb  ) { flag = 0; name = "Microsoft Windows 2000 Server"; }
  1605.        if ("Windows 5.1" >< kb  ) { 
  1606.              if (check_XP_SP2() == 1) name = "Microsoft Windows XP SP2";
  1607.             else name = "Microsoft Windows XP";  
  1608.                flag = 0;
  1609.        }
  1610.        if ("Windows 5.2" >< kb || "Windows Server 2003" >< kb ) { flag = 0; name = "Microsoft Windows 2003 Server"; }
  1611.  
  1612.         if ( name ) 
  1613.         {
  1614.                 report = "The remote host is running " + name;
  1615.                 set_kb_item(name:"Host/OS/icmp", value:name);
  1616.                 security_note(port:0, data: report );
  1617.                 exit(0);
  1618.         }
  1619.     }
  1620.  
  1621.     # SMB failed to id the OS, attempt RPC 
  1622.     port = 135;
  1623.     chk = raw_string (0x02,0x00,0x01,0x00);
  1624.  
  1625.     bindwinme = raw_string(
  1626.     0x05,0x00,0x0b,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x53,0x53,0x56,0x41,
  1627.     0xd0,0x16,0xd0,0x16,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
  1628.     0xe6,0x73,0x0c,0xe6,0xf9,0x88,0xcf,0x11,0x9a,0xf1,0x00,0x20,0xaf,0x6e,0x72,0xf4,
  1629.     0x02,0x00,0x00,0x00,0x04,0x5d,0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,0x08,0x00,
  1630.     0x2b,0x10,0x48,0x60,0x02,0x00,0x00,0x00
  1631.     );
  1632.  
  1633.  
  1634.     if ( get_port_state(port) )
  1635.     {
  1636.         soc = open_sock_tcp(port);
  1637.     if(soc)
  1638.     {
  1639.         send(socket:soc,data:bindwinme);
  1640.         rwinme  = dcom_recv(socket:soc);
  1641.         if(!strlen(rwinme))exit(0);
  1642.         lenwinme = strlen(rwinme);
  1643.         stubwinme = substr(rwinme, lenwinme-24, lenwinme-21);
  1644.         if (debug)
  1645.         {
  1646.             display('len = ', lenwinme, '\n');
  1647.             display('stub  = ', hexstr(stubwinme), '\n');
  1648.             display('r = ', hexstr(rwinme), '\n');
  1649.         }
  1650.         if (stubwinme >< chk)
  1651.         {
  1652.         return 0; # Conflicts with HP/UX...
  1653.             version = "Microsoft Windows 95/98/ME";
  1654.             if (debug) display(version,'\n');
  1655.             report = "The remote host is running " + version;
  1656.             set_kb_item(name:"Host/OS/icmp", value:version);
  1657.             security_note(port:0, data: report );
  1658.             close(soc);
  1659.             exit(0);
  1660.         }
  1661.         check_NT2K(soc:soc);
  1662.     }
  1663.     }
  1664.  
  1665.  
  1666. }
  1667.  
  1668. #-------------------------------------------------------------------------------------------------#
  1669. # IS_SERVER    - KK Liu
  1670. #-------------------------------------------------------------------------------------------------#
  1671. function is_Server()
  1672. {
  1673.     SRVchk = raw_string (0xFD,0xF3);
  1674.     multiplex_id = rand();
  1675.     g_mhi = multiplex_id / 256;
  1676.     g_mlo = multiplex_id % 256;
  1677.     port = 445;
  1678.     neg_prot = raw_string
  1679.            (
  1680.          0x00, 0x00, 0x00, 0xA4, 0xFF, 0x53,
  1681.          0x4D, 0x42, 0x72, 0x00, 0x00, 0x00, 0x00, 0x08,
  1682.          0x01, 0xC8, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1683.          0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00, 0x00,
  1684.          0x40, 0x06, 0x00, 0x00, g_mlo, g_mhi, 0x00, 0x81,
  1685.          0x00, 0x02
  1686.          ) + "PC NETWORK PROGRAM 1.0" + raw_string(0x00, 0x02) +
  1687.          "MICROSOFT NETWORKS 1.03" + raw_string(0x00, 0x02) + 
  1688.          "MICROSOFT NETWORKS 3.0"  + raw_string(0x00, 0x02) + 
  1689.          "LANMAN1.0" + raw_string(0x00, 0x02) + 
  1690.          "LM1.2X002" + raw_string(0x00, 0x02) + 
  1691.          "Samba" +     raw_string(0x00, 0x02) +
  1692.          "NT LANMAN 1.0" + raw_string(0x00, 0x02) +
  1693.          "NT LM 0.12" + raw_string(0x00);
  1694.  
  1695.     if (debug) display('Server check .....\n');
  1696.     soc = open_sock_tcp(port);
  1697.     if(soc)
  1698.     {
  1699.         send(socket:soc, data:neg_prot);
  1700.         r = smb_recv(socket:soc, length:4000);
  1701.         if(strlen(r) < 38)return(NULL);
  1702.  
  1703.         if(!strlen(r))exit(0);
  1704.            stub = substr(r, 56, 57);
  1705.            if (debug)
  1706.         {
  1707.             display('stub  = ', hexstr(stub), '\n');
  1708.             display('r = ', hexstr(r), '\n');
  1709.         }
  1710.  
  1711.            if (stub >< SRVchk) # check XP vs. 2003
  1712.            { 
  1713.             close(soc);
  1714.             return (1);
  1715.         }
  1716.     }
  1717.     return (0);
  1718. }
  1719.  
  1720. #-------------------------------------------------------------------------------------------------#
  1721. # CHECK_NT2K - KK Liu                                                                                #
  1722. # Updated 11/04/2004- add XP sp2 identification                                                        #
  1723. #-------------------------------------------------------------------------------------------------#
  1724. function check_NT2K(soc)
  1725. {
  1726.     XPchk = raw_string (0x00,0x00,0x00,0x00);
  1727.     
  1728.     NT2Ktest = raw_string( 
  1729.     0x05, 0x00, 0x0b, 0x03, 0x10, 0x00, 0x00, 0x00,
  1730.     0xcc, 0x00, 0x00, 0x00, 0x84, 0x67, 0xbe, 0x18,
  1731.     0x31, 0x14, 0x5c, 0x16, 0x00, 0x00, 0x00, 0x00,
  1732.     0x04, 0x00, 0x00, 0x00, 0x01, 0x00, 0x01, 0x00,
  1733.     0xb8, 0x4a, 0x9f, 0x4d, 0x1c, 0x7d, 0xcf, 0x11,
  1734.     0x86, 0x1e, 0x00, 0x20, 0xaf, 0x6e, 0x7c, 0x57,
  1735.     0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
  1736.     0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
  1737.     0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00,
  1738.     0x02, 0x00, 0x01, 0x00, 0xa0, 0x01, 0x00, 0x00,
  1739.     0x00, 0x00, 0x00, 0x00, 0xc0, 0x00, 0x00, 0x00,
  1740.     0x00, 0x00, 0x00, 0x46, 0x00, 0x00, 0x00, 0x00,
  1741.     0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
  1742.     0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
  1743.     0x02, 0x00, 0x00, 0x00, 0x03, 0x00, 0x01, 0x00,
  1744.     0x0a, 0x42, 0x24, 0x0a, 0x00, 0x17, 0x21, 0x41,
  1745.     0x2e, 0x48, 0x01, 0x1d, 0x13, 0x0b, 0x04, 0x4d,
  1746.     0x00, 0x00, 0x00, 0x00, 0x04, 0x5d, 0x88, 0x8a,
  1747.     0xeb, 0x1c, 0xc9, 0x11, 0x9f, 0xe8, 0x08, 0x00,
  1748.     0x2b, 0x10, 0x48, 0x60, 0x02, 0x00, 0x00, 0x00,
  1749.     0x04, 0x00, 0x01, 0x00, 0xb0, 0x01, 0x52, 0x97,
  1750.     0xca, 0x59, 0xcf, 0x11, 0xa8, 0xd5, 0x00, 0xa0,
  1751.     0xc9, 0x0d, 0x80, 0x51, 0x00, 0x00, 0x00, 0x00,
  1752.     0x04, 0x5d, 0x88, 0x8a, 0xeb, 0x1c, 0xc9, 0x11,
  1753.     0x9f, 0xe8, 0x08, 0x00, 0x2b, 0x10, 0x48, 0x60,
  1754.     0x02, 0x00, 0x00, 0x00);
  1755.  
  1756.     if (debug) display('NT 2K check -----\n');
  1757.  
  1758.         send(socket:soc,data:NT2Ktest);
  1759.         r  = dcom_recv(socket:soc);
  1760.         if(!strlen(r))exit(0);
  1761.              
  1762.         len = strlen(r);
  1763.            if (debug)
  1764.         {
  1765.             display('len = ', len, '\n');
  1766.             display('r = ', hexstr(r), '\n');
  1767.         }
  1768.         
  1769.         if (len == 132)
  1770.         {
  1771.             version = "Microsoft Windows NT 4.0";
  1772.             if (debug) display(version,'\n');
  1773.             report = "The remote host is running " + version;
  1774.             set_kb_item(name:"Host/OS/icmp", value:version);
  1775.             security_note(port:0, data: report );
  1776.         }
  1777.         else
  1778.         {
  1779.             stub = substr(r, 20, 23);
  1780.                if (debug)
  1781.             {
  1782.                 display('len = ', len, '\n');
  1783.                 display('stub = ', hexstr(stub), '\n');
  1784.             }
  1785.             
  1786.             if (stub >< XPchk) # check if XP, 2003
  1787.             {
  1788.                 if (is_Server()==1) version = "Microsoft Windows 2003";
  1789.                 else {
  1790.                     if (check_XP_SP2() == 1) version = "Microsoft Windows XP SP2";
  1791.                     else version = "Microsoft Windows XP";  
  1792.                     
  1793.                 }            
  1794.             }
  1795.             # identify Win2K server vs. workstation
  1796.             else 
  1797.             {
  1798.                 if (is_Server()==1) version = "Microsoft Windows 2000 Server";
  1799.                 else version = "Microsoft Windows 2000 Professional";
  1800.             }
  1801.             if (debug) display(version,'\n');
  1802.             report = "The remote host is running " + version;
  1803.             set_kb_item(name:"Host/OS/icmp", value:version);
  1804.             security_note(port:0, data: report );                
  1805.         }
  1806.         close(soc);
  1807.         exit(0);
  1808. }
  1809.  
  1810. #-------------------------------------------------------------------------------------------------#
  1811. # CHECK_XP_SP2 - KK Liu 2004-11-05                                                                                #
  1812. #-------------------------------------------------------------------------------------------------#
  1813. function check_XP_SP2()
  1814. {
  1815.     #debug = 1;
  1816.     port = 135;
  1817.     sp2chk = raw_string(0x05,0x00,0x00,0x00,0x00,0x00,0x00,0x00);
  1818.     acceptance = raw_string(0x00,0x00);
  1819.     
  1820.     bind = raw_string (
  1821.     0x05,0x00,0x0b,0x03,0x10,0x00,0x00,0x00,0x48,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
  1822.     0xd0,0x16,0xd0,0x16,0x00,0x00,0x00,0x00,0x01,0x00,0x00,0x00,0x00,0x00,0x01,0x00,
  1823.     0x08,0x83,0xaf,0xe1,0x1f,0x5d,0xc9,0x11,0x91,0xa4,0x08,0x00,0x2b,0x14,0xa0,0xfa,
  1824.     0x03,0x00,0x00,0x00,0x04,0x5d,0x88,0x8a,0xeb,0x1c,0xc9,0x11,0x9f,0xe8,0x08,0x00,
  1825.     0x2b,0x10,0x48,0x60,0x02,0x00,0x00,0x00    
  1826.     );
  1827.     
  1828.     
  1829.     EPquery = raw_string( 
  1830.     0x05,0x00,0x00,0x03,0x10,0x00,0x00,0x00,0x64,0x00,0x00,0x00,0x01,0x00,0x00,0x00,
  1831.     0x4c,0x00,0x00,0x00,0x00,0x00,0x02,0x00,
  1832.     0x03,0x00,0x00,0x00, 
  1833.     0x01,0x00,0x00,0x00,
  1834.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1835.     0x02,0x00,0x00,0x00,
  1836.     0x78,0x57,0x34,0x12,0x34,0x12,0xcd,0xab,0xef,0x00,0x01,0x23,0x45,0x67,0x89,0xac, 
  1837.     0x73,0x2b,0x40,0x00,
  1838.     0x01,0x00,0x00,0x00, 
  1839.     0x00,0x00,0x00,0x00,
  1840.     0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,0x00,
  1841.     0x01,0x00,0x00,0x00
  1842. );
  1843.  
  1844.     if (debug) display('XP sp2 check -----\n');
  1845.  
  1846.     if ( get_port_state(port) )
  1847.     {
  1848.         soc = open_sock_tcp(port);
  1849.         if(soc)
  1850.         {
  1851.     
  1852.             send(socket:soc,data:bind);
  1853.             r  = dcom_recv(socket:soc);
  1854.             if(!strlen(r)) return(0);
  1855.             #check if acceptance
  1856.             len = strlen(r);
  1857.             stub = substr(r, len-24, len-23);
  1858.             if (stub >!< acceptance) # check if SP2
  1859.             {             
  1860.                 return (0);             
  1861.             }
  1862.             
  1863.                             
  1864.                if (debug)
  1865.             {
  1866.                 len = strlen(r);
  1867.                 display('len = ', len, '\n');
  1868.                 display('r = ', hexstr(r), '\n');
  1869.             }
  1870.             
  1871.             send(socket:soc,data:EPquery);
  1872.             r  = dcom_recv(socket:soc);
  1873.             if(!strlen(r)) return(0);
  1874.             close(soc);
  1875.             
  1876.             len = strlen(r);
  1877.             stub = substr(r, len-8, len-1);
  1878.                if (debug)
  1879.             {
  1880.                 display('len = ', len, '\n');
  1881.                 display('stub = ', hexstr(stub), '\n');
  1882.             }
  1883.             
  1884.             if (stub >< sp2chk) # check if SP2
  1885.             {             
  1886.                 return (1); # SP2             
  1887.             }
  1888.                
  1889.         }
  1890.     }
  1891.     close(soc);
  1892.     return(0);
  1893. }
  1894.  
  1895. #-------------------------------------------------------------------------------------------------#
  1896. # MAIN                                                   #
  1897. #-------------------------------------------------------------------------------------------------#
  1898.  
  1899. if ( islocalhost() ) exit(0);
  1900.  
  1901. # check windows os using RPC + neg - by KK Liu
  1902. check_winos();
  1903.  
  1904. mysig = icmp_echo_probe() + icmp_timestamp_probe() + icmp_netmask_probe() + icmp_inforeq_probe() + icmp_udpunreach_probe() + tcp_synack_probe();
  1905.  
  1906.  
  1907.  
  1908.  
  1909. os = egrep(pattern:mysig, string:db);
  1910.  
  1911.  
  1912. if ( os )
  1913. {
  1914.  os = split(os);
  1915.  name = "";
  1916.  flag = 0;
  1917.  foreach os_name (os)
  1918.  {
  1919.  tmp = split(os_name, sep:":", keep:0);
  1920.  if ( strlen(name) == 0 )
  1921.     name = tmp[0];
  1922.  else
  1923.     {
  1924.     name += '\n' + tmp[0];
  1925.     flag ++;
  1926.     }
  1927.  }
  1928.  
  1929.  if ( strlen ( name ) ) 
  1930.  {
  1931.  
  1932.   if ( egrep(pattern:".*Windows.*", string:name) )
  1933.   {
  1934.   }
  1935.  if ( ! flag ) 
  1936.     report = "The remote host is running " + name;
  1937.  else 
  1938.     report = "The remote host is running one of these operating systems : " + '\n' + name;
  1939.  
  1940.  
  1941.  set_kb_item(name:"Host/OS/icmp", value:name);
  1942.  
  1943.  security_note(port:0, data:report);
  1944.  exit(0);
  1945.  }
  1946. }
  1947.  
  1948. if( "X:X:X:X:X:X" >< mysig) {  exit(0); }
  1949.  
  1950. results = split(mysig, sep:":", keep:0);
  1951. db = egrep(pattern:"^[^#].*", string:db);
  1952.  
  1953. foreach sig (split(db))
  1954. {
  1955.  sig = sig - '\n';
  1956.  if ( strlen(sig) > 1 )
  1957.  {
  1958.  v = split(sig, sep:":", keep:0);
  1959.  n = max_index(v);
  1960.  os = v[0];
  1961.  diff = 0;
  1962.  window = 0;
  1963.  for ( i = 1; i < n ; i ++ )
  1964.    {
  1965.    if ( v[i] != results[i] ) diff ++;
  1966.    if ( i == 26 ) window ++;
  1967.    }
  1968.  
  1969.  differences[os] = diff;
  1970.  windows[os] = window;
  1971.  
  1972.  }
  1973. }
  1974.  
  1975. m = 999999;
  1976. foreach d (differences)  if ( d < m ) m = d;
  1977.  
  1978.  
  1979. if ( m < 10 )
  1980. {
  1981.  
  1982. os = NULL;
  1983. count = 0;
  1984.  
  1985. foreach i (keys(differences))
  1986. {
  1987.  if ( differences[i] == m )
  1988.   {
  1989.    if( ! os ) { os = i; count = 1; }
  1990.    else { os += '\n' + i; count ++ ; }
  1991.   }
  1992. }
  1993.  
  1994. if ( count == 1 && m == 1 && windows[os] == 1)
  1995. {
  1996.     report = "The remote host is running " + os;
  1997.      security_note(port:0, data:report);
  1998.      set_kb_item(name:"Host/OS/icmp", value:name);
  1999.     exit(0);
  2000. }
  2001.  
  2002. report = 'Nessus was not able to reliably identify the remote operating system. It might be:\n' + 
  2003.  os + '\nThe fingerprint differs from these known signatures on ' + m + ' points.\n' +
  2004.  'If you know what operating system this host is running, please send this signature to\n' +
  2005.  'os-signatures@nessus.org : \n' + mysig; 
  2006.  
  2007.  security_note(port:0, data:report);
  2008.  exit(0);
  2009. }
  2010.  
  2011.  
  2012.  
  2013.  
  2014. report = "The remote host operating system could not be identified. If you know what this server
  2015. is running please send this signature to os-signatures@nessus.org : 
  2016. " + mysig;
  2017. security_note(port:0, data:report);
  2018.